有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java OpenJPA:无法删除或更新父行:外键约束失败

OpenJPA还有一个问题。 我正在尝试从数据库中删除一个条目,但每次尝试时都会收到一条类似于标题中的错误消息

条目的delation确实违反了一些约束,但是我知道有一种方法可以让JPA在删除实际的目标条目之前自动删除那些依赖条目

我用cascade=cascade类型试过了。在相应的@manytone注释中删除属性,在@OneToMany注释中删除orphanRemoving=true属性,但没有帮助

我希望避免自己删除这些条目,因为我没有太多时间来实现这个功能,还有很多其他事情要做

我是否需要在持久性中设置另一个属性。xml或类似的东西?我真的不明白我做错了什么

@OneToMany(mappedBy = "x", orphanRemoval=true)
private Set<SomeClass> class;

@ManyToOne(optional = false, cascade=CascadeType.Remove)
private SomeClass class;

这是我的坚持。xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<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="unit-name">
    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
    <class>Class1</class>
    <class>Class2</class>
    <class>Class3</class>
    <class>Class4</class>
    <class>Class5</class>
    <class>Class6</class>
    <class>Class7</class>
    <class>Class8</class>
    <class>Class9</class>
    <properties>
        <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
        <property name="openjpa.jdbc.SchemaFactory" value="native(ForeignKeys=true)"/>
        <property name="openjpa.jdbc.MappingDefaults" value="ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict"/>
        <property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/scheme"/>
        <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
        <property name="openjpa.ConnectionUserName" value="user"/>
        <property name="openjpa.ConnectionPassword" value="password"/>
        <property name="openjpa.Log" value="DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE"/>
    </properties>
</persistence-unit>

提前谢谢


共 (0) 个答案