我有以下问题,我有两个相关的记录,一切都很好但是当我返回父对象时,相关对象没有完全填写。 在我的课程下面
@DatabaseTable(tableName =“condicaopagamento”) 公共课CondicaoPagamento {
@DatabaseField(generatedId=true)
private Integer id;
@DatabaseField
private String descricao;
@DatabaseField
private Integer quatidadeParcela;
@DatabaseField
private Integer diasParcelamento;
@DatabaseField
private boolean usarMesComercial;
@DatabaseField
private Integer parcelaArredondamento;
@DatabaseField(canBeNull = true, foreign=true, maxForeignAutoRefreshLevel=3)
private FormaCobranca formaCobranca;
@DatabaseField
private Double desconto;
@DatabaseField
private Double acrescimo;
//@ForeignCollectionField
//private Collection<Cliente> clientes;
public Integer getId() {
return id;
}
public String getDescricao() {
return descricao;
}
public Integer getQuatidadeParcela() {
return quatidadeParcela;
}
public Integer getParcelaArredondamento() {
return parcelaArredondamento;
}
public Integer getDiasParcelamento() {
return diasParcelamento;
}
public FormaCobranca getFormaCobranca() {
return formaCobranca;
}
public Double getDesconto() {
return desconto;
}
// public Collection<Cliente> getClientes() { return clientes; }
public Double getAcrescimo() {
return acrescimo;
}
public boolean isUsarMesComercial() {
return usarMesComercial;
}
public void setId(Integer id) {
this.id = id;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public void setQuatidadeParcela(Integer quatidadeParcela) {
this.quatidadeParcela = quatidadeParcela;
}
public void setParcelaArredondamento(Integer parcelaArredondamento) {
this.parcelaArredondamento = parcelaArredondamento;
}
public void setUsarMesComercial(boolean usarMesComercial) {
this.usarMesComercial = usarMesComercial;
}
public void setFormaCobranca(FormaCobranca formaCobranca) {
this.formaCobranca = formaCobranca;
}
public void setDiasParcelamento(Integer diasParcelamento) {
this.diasParcelamento = diasParcelamento;
}
public void setAcrescimo(Double acrescimo) {
this.acrescimo = acrescimo;
}
public void setDesconto(Double desconto) {
this.desconto = desconto;
}
// public void setClientes(Collection<Cliente> clientes) {
// this.clientes = clientes;
// }
}
@DatabaseTable(tableName = "formacobranca")
public class FormaCobranca {
@DatabaseField(id = true)
private Integer id;
@DatabaseField
private String descricao;
public Integer getId() {
return id;
}
public String getDescricao() {
return descricao;
}
public void setId(Integer id) {
this.id = id;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
}
FormaCobranca fc = new FormaCobranca();
fc.setDescricao("FORMA 1");
DatabaseHelper helper = new DatabaseHelper(getContext());
FormaCobrancaDao daoFC = new FormaCobrancaDao(helper.getConnectionSource());
daoFC.createIfNotExists(fc);
FormaCobranca persistidoFC = (FormaCobranca)daoFC.queryForEq("id", 1).get(0);
CondicaoPagamento cp = new CondicaoPagamento();
cp.setDescricao("Condicao2");
cp.setFormaCobranca(persistidoFC);
CondicaoPagamentoDao daoCP = new CondicaoPagamentoDao(helper.getConnectionSource());
daoCP.createIfNotExists(cp);
//CondicaoPagamento persistido = (CondicaoPagamento)daoCP.queryForEq("descricao", "Condicao2").get(0);
CondicaoPagamento persistido = (CondicaoPagamento)daoCP.queryForId(1);
FormaCobranca pFC = persistido.getFormaCobranca();
在pFC属性描述中,这将变为“NULL”。
答案 0 :(得分:0)
您忘了为foreignAutoRefresh=true
注释指定@DatabaseField
。
此外,请阅读此答案https://stackoverflow.com/a/14466145/3802890