这是我使用的方法:
public int getId(String proyectName)
{
int idproyect=0;
try
{
Session session= hibernateUtil.getSessionFactory().openSession();
String hql = "Select idproyect from proyect where name= :proyectName";
Query query = session
.createQuery(hql);
query.setParameter("proyectName", proyectName);
idproyect= (Integer)query.uniqueResult();
}
catch(Exception e)
{
}
return idproyect;
}
无论变量是否被引入方法,我得到的结果是0,它与idproyect默认值匹配。 我检查了我的日志,正在执行选择,但结果仍为0,无论如何。 我认为它与查询转换为Integer唯一值有关。 这个问题让我关注了2天,但我忽略了直到今天因为我需要解决这个问题才能继续我的项目。
我不认为它的相关性,但我使用Hibernate来持久化类。
祝福每一个人和圣诞节快乐。
答案 0 :(得分:0)
你试试这个获得单个int值
String hql = "Select idproyect from proyect where name= :proyectName";
Query query2 = entitymanager.createNativeQuery(hql).setParameter("proyectName", proyectName);
BigInteger obj = (BigInteger) query2.getSingleResult();
System.out.println("%%%%%%%" + obj);
System.out.println(obj);
long id = Long.valueOf(obj.toString()));
System.out.println(id);