Bonjour à tous,
Voila, depuis quelque temps je me casse la tête sur un problème.
Le mieux étant de vous montrer un code épuré.
Jusque la tout va bien. Je voudrais maintenant la classe C suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 @Entity public class A implements Serializable { @Id @JoinColumn(name="c1") private String c1; ... } @Entity public class B implements Serializable { @Id @JoinColumn(name="c3") private String c3; @Id @JoinColumn(name="c4") private String c4; ... }
En écrivant ce code j'ai les logs suivants
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 @Entity public class C implements Serializable { @Id @JoinColumn(name="c5") private A c5; @Id @JoinColumns({ @JoinColumn(name="c6", referencedColumnName="c3"), @JoinColumn(name="c7", referencedColumnName="c4") }) private B c6; ... }
Si je retire le @Id sur c6, ca fonctionne correctement, seulement voila, les clés primaires ne sont pas correctes. De plus, je suis obligé d'avoir cette classe pour pouvoir avoir les méthodes getC5 et getC6.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 cannot Deploy CalinfoERP Deployment Error for module: CalinfoERP: Exception while preparing the app : org.glassfish.deployment.common.DeploymentException: Exception [EclipseLink-28018] (Eclipse Persistence Services - 2.0.1.v20100213-r6600): org.eclipse.persistence.exceptions.EntityManagerSetupException Exception Description: Predeployment of PersistenceUnit [EJB] failed. Internal Exception: java.lang.ClassCastException: org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.IdAccessor cannot be cast to org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.ObjectAccessor Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method : javax.persistence.PersistenceException: Exception [EclipseLink-28018] (Eclipse Persistence Services - 2.0.1.v20100213-r6600): org.eclipse.persistence.exceptions.EntityManagerSetupException Exception Description: Predeployment of PersistenceUnit [EJB] failed. Internal Exception: java.lang.ClassCastException: org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.IdAccessor cannot be cast to org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.ObjectAccessor
Quelqu'un aurait il une solution ?
Thank's
Partager