Annotates a parameter of a repository method, specifying a mapping to a persistent field:
- if a field name is specified, the parameter maps to the persistent field with the specified name, or
- if the special value "id(this)" is specified, the parameter maps to the unique identifier field or property.
Arguments to the annotated parameter are compared to values of the mapped persistent field.
The field name may be a compound name like address.city
.
For example, for a Person
entity with attributes ssn
,
firstName
, lastName
, and address
we might have:
@Repository public interface People { @Find Person findById(@By(ID) String id); // maps to Person.ssn @Find List<Person> findNamed(@By("firstName") String first, @By("lastName") String last); @Find Person findByCity(@By("address.city") String city); }
The By
annotation is unnecessary when the method parameter name
matches the entity attribute name and the application is compiled with the
-parameters
compiler option that makes parameter names available
at runtime.
Thus, when this compiler option is enabled, the previous example may be
written without the use of By
:
@Repository public interface People { @Find Person findById(String ssn); @Find List<Person> findNamed(String firstName, String lastname); @Find Person findByCity(String address_city); }
-
Required Element Summary
Modifier and TypeRequired ElementDescriptionThe name of the persistent field mapped by the annotated parameter, or "id(this)" to indicate the unique identifier field or property of the entity. -
Field Summary
-
Field Details
-
ID
The special value which indicates the unique identifier field or property. The annotationBy(ID)
maps a parameter to the identifier.Note that
id(this)
is the expression in JPQL for the unique identifier of an entity with an implicit identification variable.- See Also:
-
-
Element Details
-
value
String valueThe name of the persistent field mapped by the annotated parameter, or "id(this)" to indicate the unique identifier field or property of the entity.- Returns:
- the persistent field name, or "id(this)" to indicate the unique identifier field.
-