2

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

    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();
    }

我认为这样做会更新配置文件的随机属性。为什么不更新?如何更新随机属性?

4

2 回答 2

1

您需要围绕您的更改开始并提交事务。

看,

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

于 2012-05-29T12:27:31.123 回答
0

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

于 2012-05-29T10:35:51.670 回答