Play framework 2.2.1总是尝试在启动时创建DB

时间:2014-01-13 14:02:49

标签: java hibernate jpa playframework-2.0 persistence.xml

我在Play 2.1.5中有项目,我决定迁移到Play 2.2.1。我跟着http://www.playframework.com/documentation/2.2.1/Migration22并且一切正常,除了在启动时看起来项目正在尝试创建数据库而不是更新它。我总是得到两面性错误。我在使用Play 2.1.5时没有遇到这个问题。我没有看到我的配置有任何问题,但也许我忽略了一些事情:

application.conf

db.default.jndiName=DefaultDS
jpa.default=defaultPersistenceUnit
db.default.url="jdbc:mysql://localhost/database"
db.default.driver=com.mysql.jdbc.Driver

的persistence.xml

<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_2_0.xsd"
         version="2.0">

<persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <non-jta-data-source>DefaultDS</non-jta-data-source>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
        <property name="hibernate.format_sql" value="true"/>
        <property name="hibernate.hbm2ddl.auto" value="update"/>
    </properties>
</persistence-unit>

Build.scala 依赖项包含:

javaCore,
javaJdbc,
javaJpa,
cache,
"org.hibernate" % "hibernate-entitymanager" % "4.2.7.Final"

1 个答案:

答案 0 :(得分:0)

使用

<property name="hibernate.hbm2ddl.auto" value="update"/>

每个启动应用程序时,您都会根据模型更新架构。如果您未能修改架构,请尝试将值设置为validate。 BTW Duplicate entry 'VALUE' for key 'COLUMN_NAME'错误表示您尝试在开始时进行一些插入/更新,不是吗?