1
我有2個結構域的實體的基本結構:加入與JPA 2標準API
- 用戶
- 的UserDetails
其中用戶保持(具有)的UserDetails,和UseDetails具有字符串用戶名。
使用JPA標準API我想提交一個簡單的查詢,它通過給定的用戶名加載用戶。
在代碼中,我想它看起來或多或少是這樣的:
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不起作用()不能在User_.userDetails找到。 我想這不是這樣做的,也許我需要實現這些表(User和UserDetails)之間的連接?
我應該怎麼做?
這看起來不錯,我可以試一下,但我不知道這是否是做的最好的\正道.. – forhas
@YogevLidor:嗯,我很確定你必須使用「路徑」來實現這一點。我不確定我的語法是否100%正確。 – sinuhepop
我稍後會看看「路徑」,現在看起來工作得很好。謝謝! – forhas