EntityManager.find不返回值

时间:2013-11-03 13:55:22

标签: java jpa persistence

我是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,提供正确的行。我错过了什么?

聚苯乙烯。 对所有记录的查询工作正常,使用了相同的entitymanager实例。 查询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();

日志不为null,packedata存在且正确。我甚至可以记录em.close(),一切似乎都是有序的。

return p1;
来自外部的

函数可以再访问数据

最终编辑:

SOMEHOW log.log(Level.INFO,“找到包ID:”,p1.getId());没有写过“:”xD的任何内容,所以抱歉^^

0 个答案:

没有答案