Spring Hibernate获取选定的列 [英] Spring Hibernate get selected columns
本文介绍了Spring Hibernate获取选定的列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
@Override
我试图使用hibernate获得一些特定的列,但是这个查询总是失败。 public用户findByEmail(String emailID){
// TODO自动生成的方法存根
尝试{
List< Users> users = new ArrayList< Users>();
$ b $ users = this.sessionFactory.getCurrentSession()。createQuery(SELECT userID,firstName,lastName,imageURL,password,emailID,enabled FROM Users WHERE emailID =:email_ID)
.setParameter (email_ID,emailID).list();
if(users.size()> 0)
return(Users)users.get(0);
else
返回null;
catch(Exception exc)
{
log.error(exc.getMessage());
返回null;
这个查询总是失败,所以我使用下面的查询
@Override
public用户findByEmail(String emailID){
// TODO自动生成的方法存根
尝试{
列表<用户> users = new ArrayList< Users>();
$ b users = this.sessionFactory.getCurrentSession()。createQuery(FROM Users WHERE emailID =:email_ID)
.setParameter(email_ID,emailID).list();
if(users.size()> 0)
return(Users)users.get(0);
else
返回null;
catch(Exception exc)
{
log.error(exc.getMessage());
返回null;
$ b 如何仅使用hibernate获取特定列而不是你可以尝试使用一个结果转换器
获得20个列?解决方案
列表<使用者> users = session
.createQuery(
SELECT userID as userID,firstName as firstName FROM Users WHERE emailID =:email_ID)
.setParameter(email_ID,emailID)
。 setResultTransformer(new AliasToBeanResultTransformer(User.class))。list();
您需要指定投影别名: firstName as firstName
,但你可以尝试没有它。
I am trying to get some specific columns using hibernate, but this query always fails.
@Override
public Users findByEmail(String emailID) {
// TODO Auto-generated method stub
try{
List<Users> users = new ArrayList<Users>();
users = this.sessionFactory.getCurrentSession().createQuery("SELECT userID, firstName, lastName, imageURL, password, emailID, enabled FROM Users WHERE emailID = :email_ID")
.setParameter("email_ID", emailID).list();
if(users.size() > 0)
return (Users)users.get(0);
else
return null;
}
catch(Exception exc)
{
log.error(exc.getMessage());
return null;
}
}
This query always fails, so I use the below query
@Override
public Users findByEmail(String emailID) {
// TODO Auto-generated method stub
try{
List<Users> users = new ArrayList<Users>();
users = this.sessionFactory.getCurrentSession().createQuery("FROM Users WHERE emailID = :email_ID")
.setParameter("email_ID", emailID).list();
if(users.size() > 0)
return (Users)users.get(0);
else
return null;
}
catch(Exception exc)
{
log.error(exc.getMessage());
return null;
}
}
How can I get only specific columns using hibernate rather than getting 20s of columns?
解决方案 You can try to use a result transformer
List<User> users = session
.createQuery(
"SELECT userID as userID, firstName as firstName FROM Users WHERE emailID = :email_ID")
.setParameter("email_ID", emailID)
.setResultTransformer(new AliasToBeanResultTransformer(User.class)).list();
You need to specify projection aliases: firstName as firstName
, but you can try without it.
这篇关于Spring Hibernate获取选定的列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文