繁体   English   中英

我们怎样才能给休眠session.get第二个arg作为非id值

[英]how can we give hibernate session.get 2nd arg as non id value

通常我使用hibernate session.get(Class.class, id )获取实体类。 在get方法中,我给了第二个arg作为id值(即int id = 7)。我的问题是如何在休眠session.get(Class.class, non_id )中使用非id值,我需要从其他一些列中获取值(非ID列)。

您可以使用“ 条件查询” 因此,在您的情况下,可能像这样:

Criteria crit = session.createCriteria(Class.class);  
crit.add(Restrictions.eq("non_id", "myNonIdValue"));
List results = crit.list();
Class myClassObj = (myClassObj) results.get(0);

您无法使用非ID进行获取。 您将需要查询所需的对象,就像在SQL中一样。

String queryText = "from SomeObject where objectPropery = :VALUE"
Query queryObj = session.createQuery( queryText );
queryObj.setParameter( "VALUE", value );
return queryObj.uniqueResult()

您可以在此处阅读有关queryObjects的所有信息: 查询

如果要查询对象,则必须了解HQL

您可以将HibernateJPA 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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM