child record foreign key column set to null on deletion of parent record even
foreign key delete action is set to "restrict"
----------------------------------------------------------------------------------------------------------------------------
Key: OPENJPA-635
URL: https://issues.apache.org/jira/browse/OPENJPA-635
Project: OpenJPA
Issue Type: Bug
Components: jdbc
Affects Versions: 1.1.0
Environment: Windows
Reporter: Xiaoqin Feng
When using an inverse key collection mapping, if you delete the parent
object, the FK column of the corresponding child record(s) are set to null.
If there is a null constraint on the column (as is normally the case in a FK
column), this will result in a null constraint error. But we expect to get FK
constraint error.
For example,
@ManyToOne(optional=false)
@JoinColumn(name="PARENT_ID", nullable=false)
@ForeignKey
private OneManyParent parent;
If we set "nullable=false" in JoinColumn, then it throws FK constraint
exception as expected.
But since the default deleteAction value for "ForeignKey" annotation is
"restrict", even "nullable=false" is not set, it should behave as "restrict".
Note: for "Column" and "JoinColumn", the default value is "nullable=true".
I checked RelationToManyInverseKeyFieldStrategy.delete(), ForeignKey
deleteAction is not evaluated at all. It only check if Column is nullable.
I will try to attach test case soon.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.