¿En qué punto Hibernate genera tablas?

Estoy echando un vistazo a spring-data-jpa (en realidad, es la primera vez que uso el EntityManager) y no he visto ningún error, pero no parece que el EntityManager haya generado una tabla para la clase Entity. Account. aquí está el contexto de mi aplicación (project-model-config.xml) en la carpeta maven main/resources/META-INF

 <bean id="propertyConfigurer"
      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:mysql.hibernate.properties</value>
            <value>classpath:mysql.jdbc.properties</value>
            <!--<value>classpath:liquibase.properties</value>-->
        </list>
    </property>
</bean>


<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

<bean id="transactionManger" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <!--<property name="generateDdl" value="true" />-->
        </bean>
    </property>
    <property name="packagesToScan" value="com.bla.bla.model.domain"/>
    <property name="persistenceUnitName" value="default"/>
    <property name="jpaProperties">
        <props>
            <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
            <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
        </props>
    </property>
</bean>


<jpa:repositories base-package="com.bla.bla.model.dao"/>

el persistence.xml (hermano de project-model-config.xml en main/resources/META-INF ) también se ve así

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
 <persistence-unit name="default" transaction-type="RESOURCE_LOCAL" />
</persistence>

propiedades mysql.hibernate.properties/ mysql.jdbc.properties

hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.show_sql=false
hibernate.format_sql=false
hibernate.hbm2ddl.auto=create

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.username=root
jdbc.password=mypass
jdbc.url=jdbc:mysql://localhost:3306/projectjava

El paquete com.bla.bla.model.domain contiene una Cuenta de Entidad

   import java.io.Serializable;
   import java.util.Date;
   import javax.persistence.Basic;
   import javax.persistence.Column;
   import javax.persistence.Entity;
   import javax.persistence.Id;
   import javax.persistence.Table;


@Entity
@Table(name = "account")
public class Account implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "account_id")
    private Long ID;
    @Basic(optional = false)
    @Column(name = "name")
}

después de una construcción exitosa (maven) no se genera ninguna tabla. Incluso agregué una sola prueba usando afirmación simple.

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:META-INF/project-model-config.xml"})
public class AccountDAOTest {

 @Test
 public void testSetup(){
    Assert.assertTrue(true);
 }
}

Así que estoy un poco confundido acerca de cómo generar la Entidad, no puedo ver por qué no puede. ¿Alguien puede ver el problema aquí?

preguntado el 09 de marzo de 12 a las 13:03

Que es proyecto-modelo-config.xml? Tienes que cargar el contexto de aplicación ¿derecho? -

@ManuPK perdón por la falta de precisión. es lo mismo applicationContext que estoy mostrando en la primera parte de mi publicación. Lo he editado un poco para que quede más claro. -

¿Intentaste la siguiente respuesta? No vi ningún comentario u otras respuestas. Favor de votar / aceptar las respuestas si fue útil. -

1 Respuestas

Hibernate genera tablas cuando el Las asignaciones de entidades están cargadas. Lo que significa que su caso debería generar las tablas.

Esto parece un problema en primavera con jpaVendorAdapter dicho en su JIRA. También hay una pregunta SO aquí.

Ahora, no estoy seguro si necesita jpaVendorAdapter en el contexto de la aplicación. No lo usé, ni lo encontré en Spring API de Documentos. No es obligatorio, deje que se inicialice a la configuración predeterminada propuesta de.

Elimine esa asignación e intente ejecutar el código.

contestado el 23 de mayo de 17 a las 11:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.