Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Hibernate删除一对多关系中的对象时出现PostgreSQL异常_Hibernate_Postgresql_Hibernate Onetomany - Fatal编程技术网

使用Hibernate删除一对多关系中的对象时出现PostgreSQL异常

使用Hibernate删除一对多关系中的对象时出现PostgreSQL异常,hibernate,postgresql,hibernate-onetomany,Hibernate,Postgresql,Hibernate Onetomany,我有非常简单的模式-一对多关系中的两个表: <hibernate-mapping package="my.app"> <class name="CorrelationKey" table="CORRELATION_KEYS"> <id name="id" column="CORRELATION_ID"> <generator class="native"/> </id>

我有非常简单的模式-一对多关系中的两个表:

<hibernate-mapping package="my.app">
    <class name="CorrelationKey" table="CORRELATION_KEYS">
        <id name="id" column="CORRELATION_ID">
            <generator class="native"/>
        </id>
        <set name="correlationKeyParts" cascade="all-delete-orphan" lazy="false">
            <key column="CORRELATION_ID"/>
            <one-to-many class="CorrelationKeyPart"/>
        </set>
        ...
    </class>
</hibernate-mapping>
我正在Windows计算机上使用PostgreSQL 9.1


非常感谢。

当您执行这样的DML查询时,会话缓存、级联和版本检查都被完全忽略。查询直接转换为SQL查询并按原样执行。因此,您有责任首先删除(或修改)从属实体。如果要应用级联,需要使用Hibernate API:

List<CorrelationKey> allKeys = session.createQuery("select k from CorrelationKey k").list();
for (CorrelationKey key : allKeys) {
    session.delete(key);
}
List allKeys=session.createQuery(“从CorrelationKey k中选择k”).List();
for(CorrelationKey:allKeys){
删除(键);
}

@JBNizet我在尝试清空表
session.createQuery(“从CorrelationKey中删除”).executeUpdate()时看到错误。谢谢你看这个。是的。你搞定了。非常感谢你的帮助。我很感激。
List<CorrelationKey> allKeys = session.createQuery("select k from CorrelationKey k").list();
for (CorrelationKey key : allKeys) {
    session.delete(key);
}