我有一个与mysql有hibernate连接的jetty服务器。
当我尝试获取记录时,它在服务器启动之前添加到数据库中 - 它会成功返回。但是当我在服务器工作时从mysql控制台向数据库插入记录并尝试使用hibernate获取此记录时 - 它返回null。
public Book getBook(int id, Session session) throws SQLException {
Book result = null;
try {
result = (Book) session.get(Book.class, id);
}catch(Exception e) {
e.printStackTrace();
}finally {
if((session != null) && session.isOpen())session.close();
}
return result;
}
我真的不知道如何解决它。
答案 0 :(得分:2)
从另一个终端打开另一个MySQL会话,检查是否可以看到插入数据库的数据。如果你看不到它,那么问题在于你的插入操作没有被提交。
如果你能看到它,那么Hibernate也应该能够看到它,因为它应该发出类似的查询。要确定您可以打开Hibernate日志记录以检查实际发送的查询
log4j.logger.org.hibernate.SQL = DEBUG
log4j.logger.org.hibernate.type = TRACE