[
https://issues.apache.org/jira/browse/OPENJPA-177?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Craig Russell resolved OPENJPA-177.
-----------------------------------
Resolution: Fixed
Fix Version/s: 1.0.0
The fix for OPENJPA-235 should resolve this issue as well.
If any problems remain, please reopen this JIRA.
> When using NOT NULL constraint on foreign key it is not possible to use
> CascadeType.ALL and GeneratedId
> -------------------------------------------------------------------------------------------------------
>
> Key: OPENJPA-177
> URL: https://issues.apache.org/jira/browse/OPENJPA-177
> Project: OpenJPA
> Issue Type: Bug
> Components: jpa
> Affects Versions: 0.9.6
> Environment: Windows XP, IBM 32-bit SDK 5.0, WebSphere 6.1
> Reporter: Daniel Gajdos
> Fix For: 1.0.0
>
>
> When using on entity Application
> @OneToOne(cascade = CascadeType.ALL)
> @JoinColumn(name = "C_PERSON_ID", nullable=false)
> @ForeignKey
> private Person person;
> and on entity Person using generated ID, it fails on inserting Application
> because of performing db actions in this order:
> INSERT INTO T_APPLICATION (C_ID, C_APPLICATION_NUMBER, C_APPLIED_DATE,
> C_STATUS) VALUES (:1, :2, :3, :4) - here it tries to insert null value as
> C_PERSON_ID, which is not permited because of nullable=false
> declaration. This declaration creates NOT NULL constraint on C_PERSON_ID.
> INSERT INTO NSVISP.T_PERSON (C_ID, C_BIRTH_DATE, C_FIRST_NAME, C_LAST_NAME)
> VALUES (:1, :2, :3, :4)
> UPDATE NSVISP.T_APPLICATION SET C_PERSON_ID = :1 WHERE C_ID = :2
> Error reported from DB:
> org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-01400: cannot insert
> NULL into ("T_APPLICATION"."C_PERSON_ID")
> Is there any chance to change the order in which this operations are
> executed? On this type of constraint we have to insert Person before
> inserting Application and include the generated Person Id into insert
> statement for Application. Otherwise we have to deffer the NOT NULL
> constraint which can be dangerous and it is not defered initialy.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.