openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Markus Fuchs (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-177) When using NOT NULL constraint on foreign key it is not possible to use CascadeType.ALL and GeneratedId
Date Wed, 11 Jul 2007 23:26:04 GMT

    [ https://issues.apache.org/jira/browse/OPENJPA-177?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12511905
] 

Markus Fuchs commented on OPENJPA-177:
--------------------------------------

Daniel,

I submitted a patch for OPENJPA-235 that prevents nullifying not-nullable columns. The patch
is openjpa-235-break-nullable.patch. Would you be able to test it or provide a test case for
me? Thanks!

> 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
>
> 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.


Mime
View raw message