openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Donald Woods (JIRA)" <j...@apache.org>
Subject [jira] Updated: (OPENJPA-1057) Foreign keys are not properly set for ConstraintUpdateManager to determine the correct order of the sql
Date Mon, 22 Mar 2010 19:51:27 GMT

     [ https://issues.apache.org/jira/browse/OPENJPA-1057?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Donald Woods updated OPENJPA-1057:
----------------------------------

    Affects Version/s:     (was: 2.1.0)
                       2.0.0-M2
        Fix Version/s:     (was: 2.0.0)
                       2.1.0

> Foreign keys are not properly set for ConstraintUpdateManager to determine the correct
order of the sql
> -------------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-1057
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1057
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 2.0.0-M2
>            Reporter: Fay Wang
>            Assignee: Fay Wang
>             Fix For: 2.1.0
>
>         Attachments: OPENJPA-1057.patch
>
>
> In the following situations, foreign keys are not properly set in the RowImpl for ConstraintUpdateManager
to correctly determine the order of sql:
> (1) bottom-up table creation for primary table and secondary table with foreign key referencing
the primary table: Both primary and secondary tables are used to store the data in an entity,
which has the annotation as below:
>    @Table(name="Tbl1")   
>    @SecondaryTable(name="Tbl2",pkJoinColumns=@PrimaryKeyJoinColumn(name="ID"))   
>    public class EntityA implements Serializable {
>  
> ...
>     }
> In this situation, Openjpa fails to record the foreign key information in the secondary
row. Without the foreign key constraint information, the ConstraintUpdateManager is unable
to determine the ordering correctly.
> (2) bottom up table creation for an entity and its toOne/toMany relation with foreign
key constraint. For example:
> create table Bidir1to1A (id integer not null, age integer not null, name varchar(30),
primary key (id));
> create table Bidir1to1B (id integer not null, name varchar(30), entitya_id integer, primary
key (id));
> alter table Bidir1to1B add constraint FK452ACC2BD7410520 foreign key (entitya_id) references
Bidir1to1A;
> In this situation, Openjpa reads in the database foreign key constraint. If the relation
field does not have ForeignKey annotation, or the ForeignKey annotation has deleteAction set
to DEFAULT:
>     @OneToOne(cascade=CascadeType.REMOVE)  
>     @ForeignKey(deleteAction=ForeignKeyAction.DEFAULT)
>     public Unidir1to1B  entityb;
> this foreign key constraint will not be recorded in the RowImpl due to the deleteAction
= ForeignKey.ACTION_NONE. The lack of foreign key constraint information in the RowImpl leads
to the wrong ordering of the sql by the ConstraintUpdateManager.

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