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) 个答案