Добрый день, при вставке новой Femme я всегда получаю один и тот же idF, он имеет значение 0.Я не знаю в чем проблема.Только с этим классом все остальные создаются нормально.Я хотел обойтись без автогенерации, но у меня было много ошибок.Спасибо.
FemmeEntity
@Entity
public class Femme {
@PrimaryKey(autoGenerate = true)
private int idF;
private String nom, prenom, pseudo, mdp, grpSang, DN, LN;
private int age, poids;
@Ignore
public Femme(String nom, String prenom, String pseudo, String mdp) {
this.nom = nom;
this.prenom = prenom;
this.pseudo = pseudo;
this.mdp = mdp;
}
public Femme( String nom, String prenom, String pseudo, String mdp, String
grpSang, String DN, String LN, int age, int poids) {
this.nom = nom;
this.prenom = prenom;
this.pseudo = pseudo;
this.mdp = mdp;
this.grpSang = grpSang;
this.DN = DN;
this.LN = LN;
this.age = age;
this.poids = poids;
}}
FemmeDAO
@Dao
public interface FemmeDao {
@Insert
void insert(Femme femme);
@Update
void update(Femme femme);
@Delete
void delete(Femme femme);
@Query("SELECT * FROM Femme")
LiveData<List<Femme>> getAllFemmes();
@Query("select * from Femme where pseudo = :pseudo")
LiveData<Femme> getFemme(String pseudo);
@Query("select * from Femme where idF = :idF")
LiveData<Femme> getFemme(int idF);
}
FemmeRepository
public class FemmeRepository {
private FemmeDao femmeDao;
private LiveData<List<Femme>> allFemmes;
public FemmeRepository(Application application) {
DB_MJG db_mjg = DB_MJG.getInstance(application);
femmeDao = db_mjg.femmeDao();
allFemmes = femmeDao.getAllFemmes();
}
public void insert(Femme femme) {
new InsertFemmeAsyncTask(femmeDao).execute(femme);
}
private static class InsertFemmeAsyncTask extends AsyncTask<Femme, Void,
Void> {
private FemmeDao femmeDao;
private InsertFemmeAsyncTask(FemmeDao femmeDao) {
this.femmeDao = femmeDao;
}
@Override
protected Void doInBackground(Femme... femmes) {
femmeDao.insert(femmes[0]);
return null;
}
}
}
FemmeViewModel
public class FemmeViewModel extends AndroidViewModel {
private FemmeRepository repository;
private LiveData<List<Femme>> allFemmes;
public FemmeViewModel(@NonNull Application application) {
super(application);
repository = new FemmeRepository(application);
allFemmes = repository.getAllFemmes();
}
public void insert(Femme femme){ repository.insert(femme);}
public LiveData<List<Femme>> getAllFemmes(){ return allFemmes;}
}