Sto sviluppando un sito Web utilizzando Spring + JPA + Hibernate. Nella configurazione di persistenza (JPA + Hibernate) sto impostando l'attributo generateDdl di HibernateJpaVendorAdapter su true e in effetti le nuove entità creano correttamente la nuova tabella nel DB.HibernateJpaVendorAdapter generaDdl non modifica le tabelle
Una volta creata la tabella, tuttavia, se aggiungo un attributo all'entità, mi aspetto che HibernateJpaVendorAdapter modifichi la tabella e aggiunga anche la colonna. Questo non sta accadendo ed è strano perché nella documentazione del metodo setGenerateDdl di Java AbstractJpaVendorAdapter c'è: "Impostare se generare DDL dopo che EntityManagerFactory è stato inizializzato, creando/aggiornando tutte le tabelle rilevanti." Configurazione
JPA + Hibernate:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${db.driverClassName}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
</bean>
<bean id="jpaAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect" />
<property name="showSql" value="${db.showSql}" />
<property name="generateDdl" value="${db.generateDdl}" />
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaVendorAdapter" ref="jpaAdapter" />
<property name="jpaProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
<property name="dataSource" ref="dataSource" />
</bean>
persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="m8tsPU" />
</persistence>
sto facendo qualcosa di sbagliato?
Non importa, ho fatto un'altra domanda per quel punto. – satoshi