Nil*_*ils 6 java orm jpa persistence.xml
看起来jpa是让我提出很多问题的东西.
添加了这个
<property name="toplink.ddl-generation" value="create-tables"/>
Run Code Online (Sandbox Code Playgroud)
我的JPA应用程序总是在运行时创建表,这会导致表已存在时出现异常.我希望JPA检查表是否已经存在,如果没有创建它们,但是我找不到上面的属性的值,这样做.
所以如果我把它关闭,有没有办法在某个时候手动告诉JPA创建所有表?
这里更新是我得到的例外
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'tags' already exists
Error Code: 1050
Call: CREATE TABLE tags (ID BIGINT AUTO_INCREMENT NOT NULL, NAME VARCHAR(255), OCCURRENCE INTEGER, PRIMARY KEY (ID))
Run Code Online (Sandbox Code Playgroud)
MySQLSyntaxErrorException?现在这肯定是错的
根据http://www.oracle.com/technology/products/ias/toplink/JPA/essentials/toplink-jpa-extensions.html#Java2DBSchemaGen toplink没有更新退出表的选项,我不确定是否无论如何,我相信它会做正确的事情.您可以配置toplink以生成sql脚本,然后您必须手动执行以创建所有表.文件名和位置可以像这样配置:
<property name="toplink.ddl-generation" value="create-tables"/>
<property name="toplink.ddl-generation.output-mode" value="sql-script"/>
<property name="toplink.create-ddl-jdbc-file-name" value="createDDL.sql"/>
<property name="toplink.drop-ddl-jdbc-file-name" value="dropDDL.sql"/>
<property name="toplink.application-location" value="/tmp"/>
Run Code Online (Sandbox Code Playgroud)