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" 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); }
-
Field Summary
-
Required Element Summary
-
Field Details
-
ID
The special value which indicates the unique identifier field or property. The annotationBy(ID)
maps a parameter to the identifier.- See Also:
-
-
Element Details
-
value
-