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 :
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(){}
 
}
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
 
@PersistenceCapable
public class Operation implements Serializable{
 
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Long id;
 
	@Persistent
	private String libelle;
 
	@Persistent
	private Float montant;
 
etc...
Mais lorsque je persiste un objet "Compte", j'obtiens l'erreur suivante :

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).
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 ?

Voici le contenu de ma classe CompteProxy :

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);
 
}
Quelqu'un pourrait-il me guider svp ?