合并无法使用byte []成员变量更新实体

时间:2012-03-09 05:03:58

标签: java java-ee jboss persistence entity

我有一个实体,byte[]成员变量注释为@Lob。我执行了一些计算,然后进行merge()调用。这是在无状态bean中完成的。由于某种原因,它不会更新实体。也没有抛出异常。帮帮我www dot stackoverflow dot com,你是我唯一的希望。

这基本上就是我所拥有的。

我的实体:

@Entity
@Table(name="my_entity")
public class MyEntity implements Serializable {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id")
    private long id;

    @Lob
    @Column(name="data")
    private byte[] data;

    // Getters and Setters for both variables...
}

然后我有我的无状态豆。我将制作我所拥有的骨架。我有一个每分钟调用的计时器,它对数据起作用。

public @Stateless class MyBean implements IMyBeanRemote {
    @PersistenceContext
    private EntityManager em;
    @Resource
    javax.ejb.TimerService timerService;

    @Timeout
    public void doLogic(javax.ejb.Timer time) {
        MyEntity e = getMyEntity(1L);
        doMoreLogic(e);
    }
    private MyEntity getMyEntity(long id) {
        return em.find(MyEntity.class, id);
    }
    private void doMoreLogic(MyEntity entity) {
        entity.getData()[0] = 123;
        em.merge(entity);
    }
}

我认为这基本上反映了我的代码正在做的事情。当我最初创建MyEntity并持久化()时,它就可以了。


输入所有这些后,我决定检查是否在其他地方修改了这些数据。事实证明我做了,我正在重置数据作为调试测试。 =(全部解决了!

1 个答案:

答案 0 :(得分:0)

睡眠不足导致我没有看到以前的调试代码重置数据。