我是 JPA 的新手,我正在使用 eclipseLink 作为我的实现。
我正在尝试从我的数据库中获取一个 id = 11 的包。
Package p1 = null;
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
p1 = em.find(Package.class, id);
em.getTransaction().commit();
em.close();
EclipseLinks' SQL log delivers correct SQL.
[EL Fine]: sql: 2013-11-03 14:48:59.711--ServerSession(538471155)--Connection(174248886)--Thread(Thread[main,5,main])
--SELECT ID, depth, length, weight, width, counrty, street, zip FROM Packages WHERE (ID = ?)
bind => [11]
执行这个sql,手动替换?与 11,提供正确的行。我错过了什么?
附言。所有记录的查询工作正常,使用了相同的实体管理器实例。查询 query = em.createQuery("SELECT p FROM Package p");
提前致谢
pps。
em.getTransaction().begin();
p1 = em.find(Package.class, id);
if(p1 != null) {
log.log(level.INFO, "not null");
}
else {
log.log(level.INFO, "null");
}
em.flush();
em.getTransaction().commit();
em.close();
日志不为空,packagedata 存在且正确。我什至可以记录 em.close(),一切似乎都井井有条。
只要我
return p1;
来自外部的函数不能再访问数据
最终编辑:
某种方式 log.log(Level.INFO, "找到 ID 的包:", p1.getId()); 没有写任何东西超过“:”xD,很抱歉^^