【问题标题】:Rewriting Derby DB tables (with FK) via JPA通过 JPA 重写 Derby DB 表(使用 FK)
【发布时间】:2012-02-06 17:49:35
【问题描述】:

我可以在数据库中填充 2 个表,其中表具有映射(一个表具有来自另一个表的 FK)。这 EclipseLink DataSource 显示对 DB 的刷新已经完成。 我正在尝试重写表(第二次使用相同的数据),而 persistence.xml 有 属性子句如下: <property name="eclipselink.ddl-generation" value="drop-create-tables" /> 但是我看到在重写之前没有删除(擦除)以前的表,因此被拒绝,并出现以下关于重复键的异常消息:

“内部异常: java.sql.SQLIntegrityConstraintViolationException:该语句是 中止,因为它会导致唯一的键值重复 或主键约束或唯一索引 在“主机”上定义的“SQL120206135740510”。 " ( HOST 是指向的表 由 FK)。

我在persistence.xml 中遗漏了什么,否则应该在重写之前使表下降? 下面看persistence.xml文件(数据库文件被称为'test'。模式是用户名之后的名称(在我的例子中是APP)):

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" 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"> 
        <persistence-unit name="jpa_test"> 
                <class>Host</class> 
                <class>Vm</class> 
                <properties> 
                        <property name="javax.persistence.jdbc.url" value="jdbc:derby://im6-64s:1527/test;create=true" /> 
                        <property name="javax.persistence.jdbc.user" value="APP" /> 
                        <property name="javax.persistence.jdbc.password" value="passw0rd" /> 
                        <!-- EclipseLink should create the database schema automatically --> 
                        <property name="eclipselink.ddl-generation" value="drop-create-tables" /> 
                        <property name="eclipselink.ddl-generation.output-mode" value="database" /> 
                </properties> 

        </persistence-unit> 
</persistence> 

【问题讨论】:

    标签: jpa eclipselink


    【解决方案1】:

    “drop-create-tables”应该是“drop-and-create-tables”

    【讨论】:

      【解决方案2】:

      尝试添加值为 Finest 或 ALL 的“eclipselink.logging.level”属性,以查看可能未执行删除的原因。

      【讨论】:

        猜你喜欢
        • 2021-05-23
        • 2014-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多