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
Fields -
Required Element Summary
Required Elements
-
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
-