JOIN

EXISTS

This uses an SQL EXISTS and a sub-select in the batch query instead of a join.
This has the advantage of not requiring an SQL DISTINCT which can have issues
with LOBs, or may be more efficient for some types of queries or on some databases.

IN

This uses an SQL IN clause in the batch query passing in the source object Ids.
This has the advantage of only selecting the objects not already contained in the cache,
and can work better with cursors, or if joins cannot be used.
This may only work for singleton Ids on some databases.

valueOf

Returns the enum constant of this type with the specified name.
The string must match exactly an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
not permitted.)

Parameters:

name - the name of the enum constant to be returned.

Returns:

the enum constant with the specified name

Throws:

java.lang.IllegalArgumentException - if this enum type has no constant
with the specified name