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

David Ezzio updated OPENJPA-236:
--------------------------------

    Attachment: OpenJPABugCustomSQL.zip

Test case demonstrating the issue.

> No apparent way to generate all required SQL within a class derived from 
> FullClassStrategy
> ------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-236
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-236
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 0.9.7
>            Reporter: David Ezzio
>         Attachments: OpenJPABugCustomSQL.zip
>
>
> FullClassStrategy has several optional methods for overriding OpenJPA's 
> generation of SQL. However, in a simple case, there is no apparent way to 
> generate the required SQL within a class derived from FullClassStrategy.
> The model consists of two classes, BizA which has a one-way, one-to-many 
> relationship to BizB. The relationship is mapped with an inverse key within 
> the BizB table.
> The custom class strategy BizBMapping attempts to insert a BizB record and is 
> able to do so, provided that it is not contained within a BizA collection. 
> Otherwise, the attempt to persist a BizA with a contained BizB yields a SQL 
> exception because OpenJPA generates additional SQL that conflicts with the 
> SQL generated within BizBMapping.customInsert. Even if OpenJPA did not 
> generate conflicting insert statement, there is no apparent way to get the 
> value for the A_ID column within the BizBMapping.customInsert method.
> This issue is critical for users who want to substitute their own SQL (such 
> as calls to stored procedures) for all of the OpenJPA generated SQL.
> Synopsis of the output log:
> INSERT INTO BIZB (ID, INFO) VALUES (?, ?) [params=(String) B22047141, 
> (String) random]
> INSERT INTO BizA (id, info) VALUES (?, ?) [params=(String) A32968849, 
> (String) random]
> INSERT INTO BizB (A_ID) VALUES (?) [params=(String) A32968849]
> SQLException: Column 'ID'  cannot accept a NULL value. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to