0
我有一個實體byte[]
成員變量註釋爲@Lob
。我進行了一些計算,然後我做了一個merge()
電話。這是在無狀態bean中完成的。由於某種原因,它不會更新實體。也沒有例外。幫助我www dot stackoverflow點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...
}
然後我有我無狀態Bean。我將完成我所擁有的骨架。我有一個計時器,每分鐘都會對數據起作用。
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並堅持()它,那是有效的。
打完所有這些之後,我決定做一個檢查,看看我是否在其他地方修改了這些數據。事實證明,我做了,我正在重新設置數據作爲調試測試。 =(全部解決!
您可以將您的代碼添加到帖子? – 2012-03-09 05:19:53