Не удалось обновить сущность с помощью переменной-члена byte [] - PullRequest
0 голосов
/ 09 марта 2012

У меня есть сущность с 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 и сохраняю его (), это работает.


После ввода всего этого я решил проверить, не изменяю ли я эти данные где-либо еще.Оказывается, я сделал, и я сбрасывал данные в качестве теста отладки.= (Все решено!

1 Ответ

0 голосов
/ 09 марта 2012

Недостаток сна заставил меня не видеть предыдущий код отладки, сбрасывающий данные.

...