последние несколько часов я пытаюсь протестировать с помощью Spring jpa 2.0 3.0 Наконец, я смог восстановить сохраненные объекты, но когда я пытаюсь сохранить новый объект, я получаю следующее сообщение об ошибке:
org.springframework.dao.InvalidDataAccessApiUsageException: транзакция не выполняется;вложенное исключение - javax.persistence.TransactionRequiredException: в org.springframework.orm.jpa не выполняется транзакцияjava: 102) в org.springframework.dao.support.DataAccessUtils.translateIfNeeded (DataAccessUtils.java:213) в org.springframework.orm.jpa.JpaAccessor.translateIfNe Необходимый (JpaAccessor.java:15ing.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapa.rapararara.rag.rag org.JpaTemplate.execute (JpaTemplate.java:188) в org.springframework.orm.jpa.JpaTemplate.flush (JpaTemplate.java:288) в myPackage.testDAO.create (testDAO.java:33) в myPackage.Main.main (Main.java:27) Вызвано: javax.persistence.TransactionRequiredException: транзакция не выполняется в org.hibernate.ejb.AbstractEntityManagerImpl.flush (AbstractEntityManagerImpl.java:789) в sun.reflect.NativeMethodAccessorImp0суn.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в java.lang.refrajt.jpg.orm.jpa.ExtendedEntityManagerCreator $ ExtendedEntityManagerInvocationHandler.invoke (ExtendedEntityManagerCreator.java:365) в $ Proxy21.flush (Неизвестный источник) в org.springframework.orm.jpa.JpaTemplate $ 8.doInJmpf.jpg в jpa (jpa) jpg (jpag).orm.jpa.JpaTemplate.execute (JpaTemplate.java:183) ... еще 3
мой объектный компонент:
@ Открытый класс Entity Application реализует Serializable {private static finallong serialVersionUID = 1L;
@Id
@Column(name="ID_APPLICATION")
private long idApplication;
@Temporal( TemporalType.DATE)
@Column(name="DATE_LIVRAISON")
private Date dateLivraison;
@Lob()
private String description;
@Column(name="NOM_APPLICATION")
private String nomApplication;
private String url;
//bi-directional many-to-one association to Test
@OneToMany(mappedBy="application")
private List<Test> tests;
public Application() {
}
public long getIdApplication() {
return this.idApplication;
}
public void setIdApplication(long idApplication) {
this.idApplication = idApplication;
}
public Date getDateLivraison() {
return this.dateLivraison;
}
public void setDateLivraison(Date dateLivraison) {
this.dateLivraison = dateLivraison;
}
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
public String getNomApplication() {
return this.nomApplication;
}
public void setNomApplication(String nomApplication) {
this.nomApplication = nomApplication;
}
public String getUrl() {
return this.url;
}
public void setUrl(String url) {
this.url = url;
}
public List<Test> getTests() {
return this.tests;
}
public void setTests(List<Test> tests) {
this.tests = tests;
}
}
мой репозиторий:
@ Открытый класс репозитория testDAO расширяет JpaDaoSupport, реализующий ItestDAO {@PersistenceContext private EntityManager em;
public List<Application> findALL() {
// TODO Auto-generated method stub
return null;
}
public Application findById(long id) {
// TODO Auto-generated method stub
return getJpaTemplate().find(Application.class, id);
}
public void create(Application application) {
getJpaTemplate().persist(application);
}
}
Метод findById работает нормально (что заверяет меня, что конфигурация jpaверно), но когда я запускаю метод создания, я получаю сообщение об ошибке выше.
ApplicationContext context=new ClassPathXmlApplicationContext("application-context.xml");
testDAO dao=(testDAO)context.getBean("dao");
Application application=new Application();
application.setIdApplication(2);
application.setUrl("url");
application.setDescription("description");
application.setNomApplication("dsdsds");
dao.create(application);
любая помощь приветствуется Спасибо за вашу помощь