У меня есть сущность с byte[]
переменной-членом, аннотированной как @Lob
.Я выполняю некоторые вычисления, а затем выполняю вызов merge()
.Это делается в компоненте без гражданства.По какой-то причине он не обновляет сущность.Никаких исключений не выбрасывается.Помоги мне 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 и сохраняю его (), это работает.
После ввода всего этого я решил проверить, не изменяю ли я эти данные где-либо еще.Оказывается, я сделал, и я сбрасывал данные в качестве теста отладки.= (Все решено!