[
http://opensource.atlassian.com/projects/hibernate/browse/ANN-381?page=co...
]
Brice Laurencin commented on ANN-381:
-------------------------------------
I can't get this to work.
I get an NPE:
java.lang.NullPointerException
at
org.hibernate.cfg.annotations.CollectionBinder.bindManytoManyInverseFk(CollectionBinder.java:1370)
at
org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1298)
at
org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:602)
at
org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:543)
here is the mapping:
@Entity
public class Pool {
@Id
@Column(name = "PK_POOL", unique = true, nullable = false, length = 8)
private String id;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "id.admin")
private Set<PoolAdministrator> adminPools = new
HashSet<PoolAdministrator>(0);
}
@Entity
@Table(name = "ADMIN_POOL")
public class PoolAdministrator {
@EmbeddedId
private PoolAdministratorId id;
}
@Embeddable
public class PoolAdministratorId {
@ManyToOne(fetch = FetchType.EAGER,optional=false)
@JoinColumn(name = "FK_POOL")
private Pool pool;
}
The exception ocures here:
property.getPersistentClass().getIdentifier(). Property.getPersistentClass() gives null,
where it might give Pool, am I wrong?
Make possible to specify an @EmbeddedId's field in a
@OneToMany's mappedBy property
-----------------------------------------------------------------------------------
Key: ANN-381
URL:
http://opensource.atlassian.com/projects/hibernate/browse/ANN-381
Project: Hibernate Annotations
Issue Type: Improvement
Components: binder
Environment: Hibernate's annotations packaged in JBoss EJB 3.0 RC8- FD
Microsoft SQL Server 2000
Reporter: Pierre Fourès
Fix For: 3.2.0.cr2
As described in hibernate forum (
http://forum.hibernate.org/viewtopic.php?t=960763) and
discussed with Emmanuel, it would be very nice to be able to specify in an
@OneToMany's mappedBy property the field of an @EmbeddedId.
For example, i would like to be able run this example :
@Entity
public class Card {
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER,
mappedBy="primaryKey.card")
private Set<CardField> fields;
}
@Entity
public class CardField implements Field {
@EmbeddedId
private PrimaryKey primaryKey = new PrimaryKey();
@Embeddable
class PrimaryKey implements Serializable {
@ManyToOne(optional = false)
private Card card;
@ManyToOne(optional = false)
private Key key;
}
}
@Entity
public class Key {}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira