【发布时间】:2013-12-03 22:28:38
【问题描述】:
通常我使用 hibernate session.get(Class.class,id) 来获取实体类。 在 get 方法中,我将第二个 arg 作为 id 值(即 int id=7) 我的问题是如何在休眠 session.get(Class.class,non_id) 中使用非 id 值,我需要使用其他列(非 id 列)获取值。
【问题讨论】:
通常我使用 hibernate session.get(Class.class,id) 来获取实体类。 在 get 方法中,我将第二个 arg 作为 id 值(即 int id=7) 我的问题是如何在休眠 session.get(Class.class,non_id) 中使用非 id 值,我需要使用其他列(非 id 列)获取值。
【问题讨论】:
您可以使用Criteria Queries。所以在你的情况下可能是这样的:
Criteria crit = session.createCriteria(Class.class);
crit.add(Restrictions.eq("non_id", "myNonIdValue"));
List results = crit.list();
Class myClassObj = (myClassObj) results.get(0);
【讨论】:
【讨论】:
session.get,对吧。但是,当存在标准查询时,为什么要构建一个复杂的查询呢?看我的回答...
您可以将Hibernate 与JPA 2 一起使用
class MyClass { @Id long id; @Basic String description; }
TypedQuery<MyClass> query =
getEntityManager().createNamedQuery("select myClass from MyClass where description = :description", MyClass.class);
query.setParameter("description", "example");
List<MyClass> myClasses = query.getResultList();
或单个实体:
MyClass myClass = query.getSingleResult();
【讨论】: