java - 不使用JPA中的id进行检索

标签 java jpa

我有一张 table :

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 不是唯一的,有没有办法让我不需要在这里编写完整的选择查询。

谢谢

最佳答案

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

关于java - 不使用JPA中的id进行检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44592454/

相关文章:

java - 使用 OpenClover、Java 和 Gradle 集成测试代码覆盖率报告

java - 使用 JPA 映射复合主键和外键

java - 为什么JPA不支持java.time.Instant?

spring-boot - @DataJpaTest 在 MySQL 中更新实际数据,但在 H2 中工作正常

java - Java中字符串相等性比较失败

Java SpringBoot 方法@Scheduled 下还是错了@Profile?

空对象引用上的 java.lang.NullPointerException :'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)'

java - 我可以将 String 变量转换为 int 变量吗

java - java中的空 float 组

java - 将 Uniqueconstraint 关联为 JPA 中的外键