У меня полнофункциональное веб-приложение на Java EE с уровнем представления и базой данных.Я использую дерби со Glassfish 3.1 и JPA, чтобы справиться с настойчивостью.Я создал Read ok, но теперь у меня проблемы с созданием и сохранением в базе данных.Я думаю, что я близок, но что-то не так с тем, как я пытаюсь творить.
Вот мой код EAO:
/**
* Session Bean implementation class XRSSeao
*/
@Stateless
@LocalBean
public class XRSSeao {
@PersistenceContext
EntityManager em;
public XRSSeao() {}
public void addEvent(String update){
Feed feed = new Feed();
feed.setStatus(update);
feed.setId(2);
em.getTransaction().begin();
em.persist(feed);
em.flush();
em.clear();
em.getTransaction().commit();
}
}
Это будет вызвано из другого EJB.Я также не хочу устанавливать ID, так как это основной ключ, который я хочу генерировать всякий раз, когда я вызываю метод persist.Ошибка, которую я получаю при тестировании:
"Причина: java.lang.IllegalStateException: Exception Description: Невозможно использовать EntityTransaction при использовании JTA."
Если вы не знаетеВ чем проблема с этим кодом, но он может привести пример простого сохранения с автоматически сгенерированным первичным ключом, который был бы столь же полезным.
Это мой метод чтения, который работает:
public String lastUpdate(){
String resultString;
Query q = em.createQuery("SELECT x FROM Feed x WHERE x.id = 1");
List<Feed> ListofStatus = q.getResultList(); //alternatively you can use getResultList() for non 1 object is expected.
Feed returnStatusObject = ListofStatus.get(0);
resultString = returnStatusObject.getStatus();
return resultString;
}
Если мне не нужно использовать Transaction (), я не нашел пример в Интернетекоторый не использует его для создания.