Bonjour,
Je suis en train de coder une petite application avec GWT + GAE/J.
Je teste les dernières nouveautés de la version 2.1 de GWT, mais j'ai quelques soucis avec le RequestFactory.
J'ai 2 classes modèles qui sont en relation :
La classe Compte :
La classe Opération :
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 @PersistenceCapable public class Compte implements Serializable{ @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id; @Persistent private String numero; @Persistent private Float solde; @Persistent(mappedBy="compte") private List<Operation> operations; /** Getters et setters ici **/ public Compte(){} }
Mais lorsque je persiste un objet "Compte", j'obtiens l'erreur 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 @PersistenceCapable public class Operation implements Serializable{ @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id; @Persistent private String libelle; @Persistent private Float montant; etc...
J'ai donc pensé à utiliser le type Key au lieu de Long pour les "clefs primaires", mais en faisant cela, je ne peux plus utiliser RequestFactory, car lui ne peut se calquer que sur les types String ou Long, ou alors j'ai loupé une étape ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 java.lang.RuntimeException: Server Error: Error in meta-data for com.testgwt.server.model.Operation.id: Cannot have a java.lang.Long primary key and be a child object (owning field is com.testgwt.server.model.Compte.operations).
Voici le contenu de ma classe CompteProxy :
Quelqu'un pourrait-il me guider svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 @ProxyFor(Compte.class) public interface CompteProxy extends EntityProxy{ Long getId(); String getNumero(); void setNumero(String numero); Float getSolde(); void setSolde(Float solde); List<OperationProxy> getOperations(); void setOperations(List<OperationProxy> operations); }
Partager