Je suis un utilisateur la mise en œuvre classe:GreenDAO relation ToOne ne fonctionne pas
@Entity
public class User implements Serializable {
/** Serial version UID */
static final long serialVersionUID = 200L;
@Id
/** The user system id */
private long id;
@Index(unique = true)
/** The user login username*/
private String username;
/** The user first name */
private String firstName;
/** The user last name*/
public String lastName;
@ToOne
@NotNull
/** The company this user belongs*/
private Company company;
...
}
et Société
@Entity
public class Company extends JsonModel implements Serializable {
/** Serial version UID */
static final long serialVersionUID = 100L;
@Id
/** The sqlite record id */
private long id;
@NotNull
/** The company public name */
private String name;
...
}
Le @ToOne devrait fonctionner bien parce que je peux voir le produit UserDao avec Instruction TABLE:
public final static Property Company = new Property(6, long.class, "company", false, "COMPANY");
Pendant le flux de l'application I créer une instance d'utilisateur (pas de base de données) et lui affecter un objet Company.
Alors je l'appelle:
UserDao userDao = daoSession.getUserDao();
userDao.insert(user);
Cependant mon application ne parvient pas en précisant que la société ne peut pas être nulle. Lorsque j'ouvre la classe UserDao générée, je vois que bindValues ne crée jamais une société avant de sauvegarder l'utilisateur.
@Override
protected final void bindValues(DatabaseStatement stmt, User entity) {
stmt.clearBindings();
stmt.bindLong(1, entity.getDbId());
stmt.bindLong(2, entity.getId());
String username = entity.getUsername();
if (username != null) {
stmt.bindString(3, username);
}
String firstName = entity.getFirstName();
if (firstName != null) {
stmt.bindString(4, firstName);
}
String lastName = entity.getLastName();
if (lastName != null) {
stmt.bindString(5, lastName);
}
}
Que dois-je faire pour que les entités enfants soient créées?
EDIT
OK Je viens de lire que des relations ne sont pas gérées automatiquement par ORM. Je ne vois pas beaucoup d'avantages à utiliser la libhe hehe ..