Bonjour,
mon problème me semblait simple initialement (et moins maintenant!) :
je possède dans ma table un série de dates "prévues" et leurs pendant "réelles".
Par exemple :
@Column(name = "DET_DATE_DEB_PREV")
private Date dateDebutPrevue;
@Column(name = "DET_DATE_DEB_REEL")
private Date dateDebutReelle;
Comme ce genre de paire se répète, et qu'il faut je calcule systématiquement - et très logiquement- les différences entre ces deux dates, je voudrais regrouper ces colonnes ensemble.
J'ai donc défini, dans mon entité, une classe @embeddabble, et j'utilise pour chaque paire de dates réelle/prévue un seul objet :
Malheureusement, au lancement de mon server, j'obtiens des exceptions (au runtime), de type PersistenceException :
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 @Entity @Table(name = "DETAILS") public class Details extends Entite { @Embeddable public class DateJalon { public DateJalon() { } public DateJalon(Date reelle, Date theorique) { super(); this.reelle = reelle; this.theorique = theorique; } private Date reelle; //+ getters / setters publics } //... @AttributeOverrides({ @AttributeOverride(name = "theorique", column = @Column(name = "DET_DATE_DEB_PREV")), @AttributeOverride(name = "reelle", column = @Column(name = "DET_DATE_DEB_REEL")) }) private DateJalon dateDebut;
Exception [EclipseLink-195] (Eclipse Persistence Services - 1.1.2.v20090612-r4475): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The shared class com.etc.entity.Details$DateJalon must not reference the isolated class com.etc.entity.Details.
Mapping: org.eclipse.persistence.mappings.OneToOneMapping[this$0]
Descriptor: RelationalDescriptor(com.etc.entity.Details$DateJalon --> [DatabaseTable(DETAILS)])
Exception [EclipseLink-63] (Eclipse Persistence Services - 1.1.2.v20090612-r4475): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The instance creation method [com.etc.entity.Details$DateJalon.<Default Constructor>], with no parameters, does not exist, or is not accessible.
Internal Exception: java.lang.NoSuchMethodException: com.etc.entity.Details$DateJalon.<init>()
Descriptor: RelationalDescriptor(com.etc.entity.Details$DateJalon --> [DatabaseTable(DETAILS)])
Donc deux erreurs :
- The shared class com.etc.entity.Details$DateJalon must not reference the isolated class com.etc.entity.Details : celle-là, je ne la comprends vraiment pas... sauf grosse erreur de traduction, je comprends que ma classe "DateJalon" référence la classe dans laquelle elle est définie.... ce qui n'est évidemment pas le cas (ou indirectement, d'une manière que je ne comprends pas)
- [com.etc.entity.Details$DateJalon.<Default Constructor>], with no parameters, does not exist, or is not accessible : là encore, pour être bien sûr, j'ai défini deux constructeurs, l'un par défaut, et un autre avec des paramètres pour faire mentir l'erreur... mais ça a échoué.
Comme ces erreurs ne me semblent pas "vraies", je suppose que le problème est dans ma façon de faire, et j'en fais donc appel à votre expérience... pour combler l'absence de la mienne
Merci d'avance!
Partager