1
내가이 도메인 엔티티의 기본 구조가 가입 :는 JPA 2 기준 API와
- 사용자
- 된 UserDetails 사용자가 보유하고
을 된 UserDetails (A가 있습니다), 그리고 UseDetails는 문자열을 가지고 사용자 이름.
JPA criteria API를 사용하여 주어진 사용자 이름으로 User를로드하는 간단한 쿼리를 커밋하고 싶습니다.() User_.userDetails에서 찾을 수 없습니다
public User findByUsername(String userName) {
CriteriaBuilder qb = entityManager.getCriteriaBuilder();
CriteriaQuery<User> c = qb.createQuery(User.class);
Root<User> user = c.from(User.class);
Predicate condition = qb.equal(user.get(User_.userDetails.getuserName()), userName);
c.where(condition);
TypedQuery<User> q = entityManager.createQuery(c);
List<User> result = q.getResultList();
if (result.isEmpty()) {
return null;
}
return result.get(0);
}
을하지만이 때 getUserName 때문에 작동하지 않습니다 코드에서
,이 같은 다소보고를하고 싶습니다. 내가 할 수있는 방법이 아닌 것 같아요, 아마도 그 테이블 (사용자와 UserDetails) 사이에 조인을 구현해야합니까?
어떻게해야합니까?
, 나는 그것을 밖으로 시도 할 수 있지만이 그 일을 가장 좋은 \ 올바른 방법인지 궁금 .. – forhas
@ YogevLidor : 음, "경로"를 사용하여 이것을 달성해야한다고 확신합니다. 내 구문이 100 % 맞는지 확실하지 않습니다. – sinuhepop
나중에 "경로"를 살펴 보겠습니다. 이제는 제대로 작동하는 것 같습니다. 감사! – forhas