hibernate - 如何在 Hibernate 中使用唯一键而不是主键检索记录

标签 hibernate key unique

使用session.load()session.get()org.hibernate.session的任何其他方法,是否可以在hibernate中根据Unique列而不是PK列值获取记录?

我的要求是我需要根据唯一列值而不是主键获取记录。

就像我不想使用 Criteria API 一样。我需要使用 session.get 或 load 之类的方法。您提到的答案是进行搜索。但我要求根据唯一 key 获取单个记录。比如说。我的 Fruit 类有一个 PK 列 ID 和一个唯一的列 FruitID,它是唯一的键。我想根据fruitID而不是ID检索唯一记录。例如。水果 水果 = (水果) session.get(Fruit.class,fruitID);这里的fruitID是Fruit类的唯一列。

最佳答案

你的意思是这样的吗?

Criteria criteria = session.createCriteria(User.class);  
criteria.add( Restrictions.eqProperty("uniqueField", "value") )
List results = criteria.list();
Object myObj = results.get(0);

检查hibernate manual有关标准的更多信息

关于hibernate - 如何在 Hibernate 中使用唯一键而不是主键检索记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12258556/

相关文章:

java - Hibernate 使用一级或二级缓存加载所有实体

function - 将 F 键传递到 Powershell (TCP) 中的模拟 Telnet session

Javascript - 不使用删除删除对象键

.net - 通知字典中的某些值已更改

php - 仅打印一次数组中的值

java - 如何连接辅助表中非主键列的表?

java - 如何在同一个查询中检查多个 ID?

java - 使用 Java、Spring 和 Hibernate 将 MySQL View 转换为 CSV 文件

c++ - 智能指针 - 程序终止时的段错误

java - 如何提取大于 10 GB 且 4GB RAM 的文件中的唯一行