gpt4 book ai didi

Java,Hibernate getList 不工作

转载 作者:行者123 更新时间:2023-11-30 09:38:31 24 4
gpt4 key购买 nike

我正在尝试编写一个使用 hibernate 模式访问数据库的网站。保存我可以正常工作,但是当我尝试在执行 session.createQuery 调用时调用我的 getList 方法时,代码只是落入 finally 方法而没有抛出异常让我有点困惑!

代码如下:

public List<Category> getCategories() {
//insertCategory();
System.out.println("in get categories");
List<Category> result = null;
Session session = HibernateUtil.getSessionfactory().openSession();
Transaction transaction = null;
try {
transaction = session.beginTransaction();
Query cats = session.createQuery("from category where is_parent = 1");
result = cats.list();
transaction.commit();
for (java.util.Iterator<Category> it = result.iterator();it.hasNext();){
Category myCategory = it.next();
System.out.println(myCategory);
}
calculateBlueprintSize(result.size());
} catch (HibernateException e) {
// TODO: handle exception
transaction.rollback();
e.printStackTrace();
} catch (Exception ee) {
ee.printStackTrace();
} finally {
session.close();
}
return result;
}

我的插入工作正常(现在硬编码只是为了证明我可以连接到数据库)

public void insertCategory() {
Category newCat = new Category();
newCat.setActive(new Integer(1));
newCat.setCategoryDescription("my test category");
newCat.setCategoryName("my cat name");
newCat.setLastUpdatedDate(new Timestamp(new Date().getTime()));
newCat.setParent(new Integer(1));
newCat.setSequence(new Integer(1));
Session session = HibernateUtil.getSessionfactory().getCurrentSession();
try {
session.beginTransaction();

// user.setUserId(new Long(2));
session.save(newCat);
session.getTransaction().commit();
} finally {
session.close();
}

}

这基于访问 MySQL 数据库。

任何帮助将不胜感激,我一直找不到任何可以帮助我的东西,而且我是 Hibernate 的新手,所以开始考虑使用带有 ehcache 的 native sql 切换回 DAO 模式可能是最好的选择。 ...

谢谢

马特

最佳答案

我相信您从 createQuery 调用中得到了一个 RuntimeException,因为您将 SQL 名称与 HQL 名称混合在一起。我假设您的表名为 category 并且 is_parent 列是该表中的一个字段。如果要使用HQL查询,需要使用Category实体上的属性名,即parent,而不是is_parent .

关于Java,Hibernate getList 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10113489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com