Github has been down for a while, so moving to mailing list.

> Hi @pdinc-oss ,
> 
> the issue it is how you define the `IdClass`
> 
> for such a case
> 
> ```
> @Entity
> @IdClass(PK.class)
> public static class NodeS {
> 
>       @Id
>       @GeneratedValue(strategy = GenerationType.SEQUENCE)
>       private Long nid;
> 
>       @Id
>       @ManyToOne
>       private HeadS hid;
>         ...
> }
> ```
> 
> the class has to be
> 
> ```
> class PK implements Serializable {
> 
>       private Long nid;
> 
>       private HeadS hid;
> 
>       public PK(Long nid, HeadS hid) {
>               this.nid = nid;
>               this.hid = hid;
>       }
>         ...
> }
> ```

JPA 2 spec 2.4.1.3 Examples of Derived Identities, 

Case (a): The dependent entity uses IdClass to represent a composite key:

```
public class DependentId {
 String name; // matches name of @Id attribute
 long emp; // matches name of @Id attribute and type of Employee PK
}
@Entity
@IdClass(DependentId.class)
public class Dependent {
 @Id String name;
// id attribute mapped by join column default
 @Id @ManyToOne Employee emp;
...
}
```

HeadS is the Entity type and its Id type is Long.

I backed out the changes to SimpleValue.java/AbstractEntityTuplizer.java and 
changed the IdClasses to match and it does pass the tests in Hibernate.

But when testing 2.4.1.3, case a without the patch the following tests fails:

- testCompositePkWithIdentityAndFKByAuto: No part of a composite identifier may 
be null
- testCompositePkWithIdentityAndFKByAuto2: No part of a composite identifier 
may be null
- testCompositePkWithIdentityAndFKBySequence: No part of a composite identifier 
may be null
- testCompositePkWithIdentityAndFKBySequence2: No part of a composite 
identifier may be null
- testCompositePkWithIdentityAndFKByTable: No part of a composite identifier 
may be null
- testCompositePkWithIdentityAndFKByTable2: No part of a composite identifier 
may be null

These tests are expected to fail / ignored:
- testCompositePkWithIdentityAndFKByIdentity: No part of a composite identifier 
may be null
- testCompositePkWithIdentityAndFKByIdentity2: skipped


-Jason


—
You are receiving this because you were mentioned.
Reply to this email directly, 
https://github.com/hibernate/hibernate-orm/pull/3368#issuecomment-618352419, or 
https://github.com/notifications/unsubscribe-auth/AAQUDIQWBZ5E4INWC5ELIZ3ROASJXANCNFSM4MOS2VNA.


_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to