2012-03-09 38 views
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並堅持()它,那是有效的。


打完所有這些之後,我決定做一個檢查,看看我是否在其他地方修改了這些數據。事實證明,我做了,我正在重新設置數據作爲調試測試。 =(全部解決!

+0

您可以將您的代碼添加到帖子? – 2012-03-09 05:19:53

回答

0

睡眠不足導致我沒有看到以前的調試代碼重置數據