У меня есть сущность Person, у которой есть свойство Name. Имя не помечено как объект. Для класса Name у меня есть AttributeConverter, который создает полное имя путем объединения строк имени и фамилии. Таким образом, для объекта лица имя столбца имеет тип String.
@Entity
public class Person {
// ...
@Convert(converter = NameAttributeConverter.class)
@Column
private Name name;
// ...
}
public final class Name implements Comparable, Serializable {
// ...
private String firstName;
private String lastName;
// ...
}
Это работает. Но теперь я хочу расширить свой личный репозиторий. Я хочу найти людей по ее фамилии. Но
List<Person> findByName_LastName(String lastName);
или
List<Person> findByNameLastName(String lastName);
не работает. Я получаю следующее исключение:
PersonRepository.findByName_LastName(java.lang.String)! Illegal attempt to dereference path source [null.name] of basic type
Как решить проблему? Спасибо и всего наилучшего
РЕДАКТИРОВАТЬ:
public interface PersonRepository extends CrudRepository<Person, Long>{
// The repository works without the findByName...
// List<Person> findByName_LastName(String lastName);
}