2017-06-16 30 views
0

使用id我有一个表:检索,而不在JPA

User: id, name, age, role_key 

其中ID是唯一标识符。 我想检索具有特定角色键的所有用户。

我可以做这样的事情:

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

,但我想知道是否有写查询一种更好的方式。 例如,如果我想通过使用Id检索,我可以使用find。但是,由于我使用的是不唯一的role_key,是否有一种方法可以在这里不需要编写完整的select查询。

感谢

+2

定义“更好”! - 你在哪里看到你有什么问题? – JimmyB

+1

“更好的方式”是什么意思?表设计,查询设计? –

+1

试试春天的数据jpa – farrellmr

回答

1

除了JonK的评论,我会建议你使用@NamedQuery的性能增益,因为你的查询是参数化查询。 对不起,这应该是一个评论,但我的代表。不会允许我。