Proprietário.java
Code:
@Entity
public class Proprietario implements Serializable {
private Long id;
private String nome;
private Cpf cpf;
private List<Imovel> listaImoveis;
public Proprietario() {
}
public Proprietario(Long codProprietario) {
this.id = codProprietario;
}
@OneToMany
public List<Imovel> getListaImoveis() {
return listaImoveis;
}
public void setListaImoveis(List<Imovel> listaImoveis) {
this.listaImoveis = listaImoveis;
}
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
...
ProprietarioDAO.java
Code:
public class ProprietarioDAO extends GenericDAO<Proprietario> {
@Override
public void updateSaveOrUpdate(SaveOrUpdateStrategy query) {
query.saveOrUpdateManaged("listaImoveis");
}
@Override
public void updateListagemQuery(QueryBuilder<Proprietario> query, FiltroListagem _filtro) {
ProprietarioFiltro filtro = (ProprietarioFiltro) _filtro;
query.whereLike("proprietario.nome", filtro.getNome())
.where("proprietario.cpf = ?", filtro.getCpf());
}
@Override
public void updateEntradaQuery(QueryBuilder<Proprietario> query) {
query.fetchCollection("listaImoveis");
}
}
Imovel.java
Code:
@Entity
public class Imovel implements Serializable {
private Long id;
private String nome;
private TipoImovel tipo;
...
private Proprietario proprietario;
public Imovel() {
}
public Imovel(Long id) {
this.id = id;
}
public Imovel(Long id, String nome, int tipo, Money valorCondominio) {
this.id = id;
this.nome = nome;
// this.tipo = tipo;
this.valorCondominio = valorCondominio;
}
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@ManyToOne(fetch=FetchType.LAZY)
public Proprietario getProprietario() {
return proprietario;
}
public void setProprietario(Proprietario proprietario) {
this.proprietario = proprietario;
}
...
ImovelDAO.java
Code:
public class ImovelDAO extends GenericDAO<Imovel> {
@Override
public void updateListagemQuery(QueryBuilder<Imovel> query, FiltroListagem _filtro) {
ImovelFiltro filtro = (ImovelFiltro) _filtro;
query.whereLike("imovel.nome", filtro.getNome())
.where("imovel.tipo = ?", filtro.getTipo());
}
}