Как использовать часть составного ключа в методах репозитория JPA для извлечения данных? - PullRequest
0 голосов
/ 06 октября 2018

У меня есть класс Application с EmbeddedId, а второй столбец в embbbedID является поддельным ключом и имеет отношение «один к одному» с предложением.

@Entity
   public class Application implements Serializable{

private Integer id;

@EmbeddedId
private MyKey mykey;

private String resume;

@Enumerated(EnumType.STRING)
@NotNull
private ApplicationStatus applicationStatus;

    @Embeddable
public class MyKey implements Serializable{

    private static final long serialVersionUID = 1L;
    @NotNull
    private String emailId;
    @ManyToOne(fetch = FetchType.LAZY)
    @NotNull
    private Offer offer;

в сопоставлении класса предложения выполняется для jobTitle.

 @Repository
interface ApplicationRepository extends JpaRepository <Application,MyKey>

{

List<Application> findAllByMyKey_Offer(String jobTitle);
}

Пытался, но безуспешно ... Я хочу получить все заявки, относящиеся к конкретному заданию.Какое у меня имя метода в классе ApplicationRepository.

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Ваше имя метода неверно, правильным является findAllByMykey_Offer или findAllByMykeyOffer, так как ваше поле называется mykey.

Как упомянуто в документации https://docs.spring.io/spring-data/jpa/docs/2.1.0.RELEASE/reference/html/ с использованием List<Application> findAllByMykey_Offer(String jobTitle);лучше чем List<Application> findAllByMykeyOffer(String jobTitle);

0 голосов
/ 06 октября 2018

С составным ключом, ваше имя поля должно включать имя поля встроенного идентификатора.В вашем случае это будет так (я не проверял это)

List<Application> findAllByMykeyOffer(String jobTitle);

Обратите внимание, что k здесь в нижнем регистре, потому что ваше поле в классе Application называется mykey,не myKey

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...