使用良好的休眠习惯获取值

问题描述:

下午好! 我认为这可能是一个愚蠢的问题..使用良好的休眠习惯获取值

我已经在Hibernate中下面的代码:

query = session.createQuery ("select F from Employee F where F.email =" + email); 

有谁知道我怎么能这样的查询中获取一个字段的值?

示例:我将如何获取人员(员工)的姓名。

注:我想用一个良好的Hibernate的做法......我相信这是不好的重复:

query = session.createQuery ("select F.person from Employee F where F.email =" + email); 

你能帮助我吗? :)

谢谢。

+1

我不明白你的问题。如果要获取员工的姓名,请执行查询,该查询将返回一个员工,并在返回的员工上调用getName()。你在问什么?如果你想要一个只返回名称而不是整个员工的查询,那么在你的问题的第二个查询中做你正在做的事情(但是使用电子邮件的命名参数)。有什么问题? –

此前休眠5.2:

String sql = "SELECT e.person FROM Employee e WHERE e.email = :email"; 
Query query = session.createQuery(sql)  
query.setParameter("email", emailAddress); 
List<Person> people = (List<Person>) query.getResultList(); 

在Hibernate 5.2及以后:

String sql = "SELECT e.person FROM Employee e WhERE e.email = :email"; 
Query query = session.createQuery(sql, Person.class); 
query.setParameter("email", emailAddress); 
List<Person> people = query.getResultList(); 

使用Hibernate的EntityManager的合并成核心为5.2.x +,你现在得到更好的类型的一部分安全的查询,以避免后来投射:)。