我可以使用以下代码查询带有id的行:
Session session = (Session) HibernateUtil.getSessionFactory().getCurrentSession();
transaction = session.beginTransaction();
result = (T) session.get(clazz, id);
但我想要实现不同的东西。 为什么不可能(或者是?)声明某个列并获取与此列值匹配的所有行。像这样:
Session session = (Session) HibernateUtil.getSessionFactory().getCurrentSession();
transaction = session.beginTransaction();
result = (T) session.get(clazz, "column", "column_value");
答案 0 :(得分:1)
使用Criteria API或HQL轻松实现。
假设Hibernate不支持通过非id列获取实体,因为Unit Of Work和Identity Map模式实现了Hibernate L1缓存。
还要考虑Session#get and Session#load方法之间的差异。