2016-05-20 19 views
0

ormliteのテーブルに参加する際に問題があります。最初のロードでは、ツールとしてretrofitとgsonを使ってapiからデータを挿入する準備ができました。Ormliteの異種フィールドは、私の応答と時には重複したフィールドでnullを与えます

は、ここに私のPOJOです:私は実際に "participant_id" は重複フィールドIDを取得していますそのPOJOで

public class ParticipantDetailsModel { 

@DatabaseField(id = true) 
private int id; 

@DatabaseField 
private String first_name; 

@DatabaseField 
private String last_name; 

}

public class Trainings implements Serializable { 

@DatabaseField 
private int participant_id; 

@DatabaseField 
private int batch_id; 

@DatabaseField 
private int graduation_program_id; 

@DatabaseField 
private int id; 

@DatabaseField(foreign = true, foreignAutoRefresh = true, foreignAutoCreate = true) 
private ParticipantDetailsModel participant; 

}

。だから私は、このフィールドの名前をPrivate ParticipantDetailsModelの参加者からPrivate ParticipantDetailsModelの参加者に変更して、データを取得するだけです。一度クエリを実行すると値が取得されません:

QueryBuilder<Trainings, String> qb1 = dao1.queryBuilder(); 
QueryBuilder<ParticipantDetailsModel, String> qb2 = dao2.queryBuilder(); 
qb1.where().eq("id", item.getId()).and().in("participant_id", parId); 
List<Trainings> u = qb1.join(qb2).query(); 

何が不足していますか? HERESに

私のdb:

enter image description here

答えて

0

2.12外国オブジェクトフィールド

Ormliteのドキュメントを見てください...の名という

お知らせフィールドはaccountではなくaccount_idです。 を照会する場合は、このフィールド名を使用する必要があります。あなたはCOLUMNNAMEの使用を設定するにはデータベースフィールドの注釈にCOLUMNNAMEフィールド を使用して

をカラム名を設定することができます。

public static final String ID_COLUMN = "ID"; 

@DatabaseField(columnName = ID_COLUMN) 
private int    id; 

問合せ作業を行うには、とqb2Where句を設定する必要がありますよく

qb1.where().eq("id", item.getId()); 
qb2.where().in("id", parId); 
List<Trainings> u = qb1.join(qb2).query(); 
+0

おそらく、それらの2つのpojosを使用して、私は重複IDとしてエラーが発生しています。 @DatabaseFieldプライベートint participant_id;私はそれを動作させることができる方法はありますか? – yuna