Первичный ключ всегда 0 - PullRequest
0 голосов
/ 11 июля 2019

Добрый день, при вставке новой 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;}
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...