2017-09-13 7 views
1

せずにフィールドをロードしようとしている:ORMLiteは、私は次のような2クラスき@DatabaseField注釈

@Getter 
@Setter 
@NoArgsConstructor 
@DatabaseTable(tableName = "condicao_ambiental") 
public class CondicaoAmbiental { 
    @Expose 
    @DatabaseField(id = true, columnName = "id") 
    private UUID id; 
    @Expose 
    @DatabaseField(dataType = DataType.DATE_LONG) 
    private Date dataCriacao; 
    @Expose 
    @DatabaseField(columnName = "idUsuario", foreign = true, foreignAutoRefresh = true) 
    private Usuario usuario; 
    ... 
} 

@Getter 
@Setter 
@NoArgsConstructor 
@DatabaseTable(tableName = "usuario") 
public class Usuario { 
    @Expose 
    @DatabaseField(id = true, columnName = "id") 
    private UUID id; 
    @DatabaseField(foreign = true, columnName = "idCliente") 
    private Cliente cliente; 
    @DatabaseField 
    private String nome; 
    @DatabaseField 
    private String login; 
    private String senha; 
    ... 
} 

これらのクラスで使用される注釈はLombokRetrofit2OrmLite5

からです

CondicaoAmbientalという質問を表示すると、このエラーが表示されます。

java.sql.SQLException: Unknown field 'senha' from the Android sqlite cursor, not in:[id, idCliente, nome, tipoSindicato, dataCadastro, diasTeste] 

ただし、列senhaはフィールドとして注釈されません。

リストを照会すると、Usuarioはすべて正常に実行され、リストがロードされます。 フィールドusuarioからforeignAutoRefresh=trueを削除すると、エラーは発生しません。

誰かに私に何が欠けているか教えてもらえますか?

+0

古くなったormlite.txt設定ファイルがありますか? – Gray

+0

わかりませんが、そのようなファイルを設定したことはありません –

+1

_used_フィールドは '@ DatabaseField'としてマークされましたか? ORMliteは特に、ラベルのないフィールドを選択することは想定されていません。何かを再コンパイルする必要があるか、設定ファイルを再生成する必要があるかどうかは疑問です。 – Gray

答えて

1

Grayで説明されているように、ソリューションはプロジェクトを再コンパイルするだけで、ORMLiteは設定ファイルを再生成できます。

関連する問題