Буду признателен за помощь в понимании того, почему моему приложению не удается найти сущность, даже если она существует в базе данных;Я считаю, что проблема связана с одновременным написанием / чтением.Я использую jpa2 / hibernate 4 и spring 3.
У меня есть метод, который создает пользователя, а затем отправляет идентификатор, как объектное сообщение json, в очередь сообщений, где пользователь подвергается дальнейшей обработке.Проблема возникает, когда обработчик сообщений (UserProcessor.class) пытается find
пользователя (см. Ниже).
Registration.class
@Transactional
public Response createUser(String firstName, String lastName) {
User tmpUser = new User(firstName, lastName);
User savedUser = this.em.merge(tmpUser);
this.em.flush();
if (savedUser != null) {
processUser(savedUser.getId()); // message sent to queue.
} else {
// Throw exception...
}
}
UserProcessor.class
@Transactional(rollbackFor={javax.ws.rs.WebApplicationException.class})
public void processUser(Long id) {
User user = this.em.find(User.class, id); // No user entity is found, "user" is null.
if (user == null) {
// throw exception
}
...
}