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;
...
}
これらのクラスで使用される注釈はLombok
、Retrofit2
とOrmLite5
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
を削除すると、エラーは発生しません。
誰かに私に何が欠けているか教えてもらえますか?
古くなったormlite.txt設定ファイルがありますか? – Gray
わかりませんが、そのようなファイルを設定したことはありません –
_used_フィールドは '@ DatabaseField'としてマークされましたか? ORMliteは特に、ラベルのないフィールドを選択することは想定されていません。何かを再コンパイルする必要があるか、設定ファイルを再生成する必要があるかどうかは疑問です。 – Gray