Spring + JPA (hibernate) + Tomcat
Bonjour,
Voici mon environment:
-Tomcat 6
-Spring wef flow + JSF
-JPA + Hibernate
-Spring RC1
-@Transactional annotation
Voici mon code.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
<bean id="controleAdministrationSondages" class="com.jbmlf.ControleAdministrationSondages" scope="singleton">
<property name="controleAdministrationSondagesDAO" ref="controleAdministrationSondagesDAO"/>
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="jbmlfPU"/>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<property name="databasePlatform" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
</bean>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean id="controleAdministrationSondagesDAO" class="com.jbmlf.ControleAdministrationSondagesDAO" scope="singleton">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/> |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
@Transactional
public class ControleAdministrationSondagesDAO {
private EntityManagerFactory entityManagerFactory;
@PersistenceUnit
public void setEntityManagerFactory(EntityManagerFactory entityManagerFactory) {
System.out.println("I am set!!");
System.out.println("I am (arg): "+ entityManagerFactory);
this.entityManagerFactory = entityManagerFactory;
System.out.println("I am (instance variable set to): "+ this.entityManagerFactory);
}
public void save(Sondage sondage) {
if(getEntityManagerFactory() == null) System.out.println("emf is null");
System.out.println("I am: "+ entityManagerFactory);
EntityManager em = getEntityManagerFactory().createEntityManager();
if(em == null) System.out.println("em is null");
em.persist(sondage);
}
public EntityManagerFactory getEntityManagerFactory() {
return entityManagerFactory;
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void creerSondage(Sondage sondage) {
System.out.println("creerSondage");
Sondage s = new Sondage(1);
s.setDateCreation(new Date());
s.setDateDebut(new Date());
s.setDetailQuestion("How old R U?");
s.setIdentifiantAdministrateur(new Administrateur(1));
s.setIsQuestionMultiple(2);
s.setNomSondage("Age Poll");
List<Reponsepossible> rps = new ArrayList<Reponsepossible>();
Reponsepossible rp1 = new Reponsepossible(1);
rp1.setIdentifiantSondage(s);
rp1.setDetailReponse("18-30");
Reponsepossible rp2 = new Reponsepossible(2);
rp2.setIdentifiantSondage(s);
rp2.setDetailReponse("30-50");
rps.add(rp1);
rps.add(rp2);
s.setReponsepossibleCollection(rps);
controleAdministrationSondagesDAO.save(s);
//em.persist(s);
System.out.println("Fin creer sondage");
} |
Ca ne commit pas!!
Quelqu'un a t il une idée?
Merci d'avance,
Julien.