¿En qué punto Hibernate genera tablas?
Frecuentes
Visto 222 veces
0
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í?
1 Respuestas
0
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 hibernate jakarta-ee entitymanager or haz tu propia pregunta.
Que es proyecto-modelo-config.xml? Tienes que cargar el contexto de aplicación ¿derecho? - ManuPK
@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. - black sensei¿Intentaste la siguiente respuesta? No vi ningún comentario u otras respuestas. Favor de votar / aceptar las respuestas si fue útil. - ManuPK