Jpa不会更新数据库中的行

时间:2016-03-29 12:41:57

标签: java jpa eclipselink derby

将Jpa与Eclipselink一起用作我的提供者和Derby db。 我有一个看起来像这样的方法:

public void changeIndivid(long s,long id){
    et.begin();
    Individ C=em.find(Individ.class, id);
    System.out.println(C.s);
    C.s=s;
    System.out.println(C.s);
    em.flush();
    System.out.println(C.s);
    et.commit();
    System.out.println(C.s);
    em.merge(C);
    System.out.println(C.s);

}

并使用一些测试数据,其中每行中的s列有1,然后我调用此方法更改其中一行,以便s列为2.这是打印输出:< / p>

1
2
2
2
2

显然它可以工作,但是当我使用SQuirreL打开数据库时,s列中的所有行都有1个。

ETA:我已尝试使用和不使用flush()和merge()中的任何一个或两者,并且在提交之前和之后进行了合并,从不抛出任何异常或更新行。

ETA2:这是打印输出,记录级别为ALL(删除后#34; [EL Finer]:transaction:2016-03-29 15:03:40.077 - UnitOfWork(1569403232) - Thread(Thread [Thread] -2,5,main])&#34;来自记录的所有行:

--Execute query ReadObjectQuery(name="readIndivid" referenceClass=Individ sql="SELECT ID, S, TESTED, GENERATION_ID FROM INDIVID WHERE (ID = ?)")
1
2
--begin unit of work flush
--end unit of work flush
2
--begin unit of work commit
--end unit of work commit
--resume unit of work
2
--Merge clone with references nv3.nn.db.Individ@3b6c64f3
2

0 个答案:

没有答案