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

Heath Thomann commented on OPENJPA-2651:
----------------------------------------

Hi Francesco!  Let me answer your questions:

Q1) Are you also going to provide patches for 2.3.x and trunk as well?

A1) I applied to 2.2.x and trunk.  I don't use 2.3.x and was thinking others 
did so I let the interested parties put stuff into 2.3.x as they see fit.  I 
don't know, maybe no one is using 2.3.x these days??  

Q2) Finally, why is not the "affected versions" above set to 2.2.2, 2.3.0 and 
2.4.1? I would also set "fix for versions" to 2.2.3, 2.3.1 and 2.4.2.

A2) Your question is an interesting one......one could spend all day updating 
"affected versions".  Personally, I use the versions I test on, which is always 
the latest version of a particular branch.  For example, the testing I was 
doing was on 2.2.x, and therefore I was using the latest code, which is 2.2.3.  
If I was on 1.2.x I'd be using 1.2.4, and as such list it.  Continuing with 
1.2.4, I'd take the testing and fix forward to 2.0.x, 2.1.x, 2.2.x, and trunk; 
where applicable.  As such, I'd list those as the affected versions.

Q3) Shall we resolve this issue, then? 

A3) Yes, was getting around to it.

I hope this helps.

Thanks,

Heath

> IDs of entities are incorrectly assigned when @SqlResultSetMapping is used 
> with inheritance and a ManyToOne relationship.
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-2651
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2651
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: sql
>    Affects Versions: 2.2.2, 2.3.0, 2.4.1
>            Reporter: Heath Thomann
>            Assignee: Heath Thomann
>            Priority: Critical
>             Fix For: 2.2.3, 2.3.1, 2.4.2
>
>         Attachments: OPENJPA-2651-2.2.x.patch, SqlResultSetMappingIssue.zip
>
>
> I have discovered an issue with using @SqlResultSetMapping when inheritance 
> and ManyToOne relationships are used.  To explain the issue, take this entity 
> and @SqlResultSetMapping:
> @Entity
> @SqlResultSetMapping(name = "MyResMap", entities = { 
> @EntityResult(entityClass = CrtRequisicaoChequePersEntity.class, fields = {
>     @FieldResult(name = "crtOperacaoByOperacaoRecepcaoServCent.id", column = 
> "opRecepcaoServCentraisId"),
>     @FieldResult(name = "crtOperacaoByOperacaoRecepcaoServCent.dataHora", 
> column = "opRecepcaoServCentraisDataHora") 
>     }) 
> })
> public class CrtRequisicaoChequePersEntity extends CrtRequisicaoEntity {
> .......
>     @ManyToOne
>     @javax.persistence.JoinColumn(name = "OPERACAO_RECEPCAO_SERV_CENT", 
> referencedColumnName = "ID")
>     private CrtOperacaoEntity crtOperacaoByOperacaoRecepcaoServCent;
> As you can see, this entity extends 'CrtRequisicaoEntity' and has a ManyToOne 
> relationship to 'CrtOperacaoEntity', with name 
> 'crtOperacaoByOperacaoRecepcaoServCent'.  As you can see, the @FieldResult in 
> the @SqlResultSetMapping references the fields in 'CrtOperacaoEntity'.   
> These two entities are defined as follows:
> @Entity
> @Inheritance(strategy = InheritanceType.JOINED)
> public class CrtRequisicaoEntity {
> .....
>     @Id
>     private long id;
> .....
> @Entity
> public class CrtOperacaoEntity implements Serializable {
> .....
>     @Id
>     private long id;
>     @Basic
>     private Timestamp dataHora;
> With these entities, take an SQL select which uses an AS (the entire SQL is 
> to long to add here, see provided recreate/test attached):
> String sqlCust = "SELECT t0.ID" +
> .........
> ",t2.DATA_HORA as opRecepcaoServCentraisDataHora" +
> ",t2.ID as opRecepcaoServCentraisId" +
> ....
> "FROM CrtRequisicaoChequePersEntity t0"
> ....                
> "INNER JOIN CrtOperacaoEntity t2"
> ....
> With this SQL, the two IDs will be populated with the ID from 
> CrtRequisicaoChequePersEntity, rather than the ID corresponding to each 
> entity.
> Thanks,
> Heath



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to