私はspring-data-jpa(実際に初めてentityManagerを使用しています) を見ていますが、エラーは見られませんでしたが、entityManagerはエンティティクラスAccount
のテーブルを生成していないようです。ここではMavenのメイン/リソース/ META-INFフォルダ内の自分のアプリケーションのコンテキスト(プロジェクト・モデル-config.xmlが)どの時点でHibernateがテーブルを生成しますか?
<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"/>
のpersistence.xml(メイン/リソースプロジェクトモデル-config.xmlのの兄弟であります/ META-INF)も、この
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="default" transaction-type="RESOURCE_LOCAL" />
</persistence>
性質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
パッケージcom.bla.bla.model.domainは、エンティティのアカウントが含まれているように見えます
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")
}
成功したビルド後(maven)にはテーブルが生成されません。私は単純なアサートを使って単一のテストを追加しました。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:META-INF/project-model-config.xml"})
public class AccountDAOTest {
@Test
public void testSetup(){
Assert.assertTrue(true);
}
}
エンティティを生成する方法についてちょっと混乱しています。私はなぜそれができないのか分かりません。 誰でも問題をここで確認できますか?
** project-model-config.xmlとは何ですか?** ** applicationContext **をロードする必要がありますか? – ManuPK
@ManuPK正確さの欠如を申し訳ありません。それは私の投稿の最初の部分で表示しているのと同じ 'applicationContext'です。私はそれをもっとはっきりと編集しました。 –
あなたは以下の答えを試しましたか?私はコメントや他の答えが表示されませんでした。もしそれが有用だったら、回答をアップホート/受け入れてください。 – ManuPK