在JPA中更新查询结果

时间:2012-05-29 10:33:03

标签: jpa persistence

我有下面的代码,它将查询实体并设置一个随机数:

    EntityManager em = EMF.get().createEntityManager();
    Profile user = null;
    Query q = null;
    try{
        q = em.createNamedQuery("Profile.getRandomProfile");
        q.setParameter("random", Math.random());
        q.setMaxResults(1);
        user = (Profile) q.getSingleResult();

        user.setRandom( Math.random() );

    } catch(NoResultException ex){
            ex.printStackTrace();
    }

我认为这样做会更新个人资料的随机属性。为什么不更新?如何更新随机属性?

2 个答案:

答案 0 :(得分:1)

您需要围绕更改开始并提交交易。

请参阅,

http://en.wikibooks.org/wiki/Java_Persistence/Transactions

答案 1 :(得分:0)

您没有将其保存回数据库。您应该使用merge()方法在事务中更新一个EntityManager