在JPA中不使用id进行检索

时间:2017-06-16 15:03:21

标签: java jpa

我有一张桌子:

User: id, name, age, role_key

其中Id是唯一标识符。 我想要检索具有特定role_key的所有用户。

我可以这样做:

entityManager.createQuery(
    "SELECT u From user WHERE user.role_key LIKE :roleKey")
    .setParameter("roleKey", roleKey)
    .getResultList();

但我想知道是否有更好的方法来编写查询。 例如,如果我想通过使用Id来检索,我可以使用find。但是,因为我使用的是不唯一的role_key,所以我不需要在这里编写完整的选择查询。

由于

1 个答案:

答案 0 :(得分:1)

除了JonK的评论之外,我还建议您使用@NamedQuery来提高性能,因为您的查询是参数化查询。 对不起,这应该是评论,但我的代表。不允许我。