如何从 JPA 中的实体获取单行?
表:员工
@Id
private int empId;
private String empName;
...
JPA 默认返回 List。我试图获取单行。
员工资料库:-
public Employee findByEmpName(String empName);
另一种方法是这样做,@Query 应该被使用。
@Query(value="select e from Employee e where empName = ?1 limit 1", nativeQuery=true)
public Employee findByEmpName(String empName);
我如何确保它返回单行和正确的结果。任何帮助表示赞赏..提前致谢。
原文由 Akkave 发布,翻译遵循 CC BY-SA 4.0 许可协议
您不需要“确保”任何事情。
如果您没有指定为返回的排序集合(例如
List<Employee>
而不是Employee
)并且您的查询返回多个结果,它将启动javax.persistence.NonUniqueResultException: result returns more than one elements
如果您的查询返回更多行并且您只想要其中之一,或者添加一个条件来区分您真正想要的那些行,或者,如果它们相同,则添加一个很好的旧
distinct
那是你编写查询时的工作