Here are excerpts from my attempt to create real estate and user registration software. The project was developed in the MVC framework. (Model, View, and Control.)
Problem:
How to update an attribute of a MySQL table? The update must be done through Hibernate interface commands.
//Postarei apenas um fragmento da classe em que a atualização da situação(disponível ou indisponível para locação) do imóvel ocorre
//Pesquiso o imóvel pelo número de registro. Já chequei o número de registro passado para o método. Está correto.
Imovel realty = ImovelController.pesquisarImovel(registro);
//Agora quero alterar a situacao, que no momento está setada como 'true' no database.
realty.setSituacao(false);
//Aqui invoco o método responsável (ou que pelo menos deveria ser)por alterar a situação
ImovelController.atualizarImovel(realty)
Control Class. This class is used to add, fetch, and remove attributes in the Database Property table. I would like to implement a function that updates Property attributes.
public class ImovelController {
//Declaração da entidade responsável pela interação do Hibernate com o Banco de Dados.
static EntityManagerFactory factory = Persistence.createEntityManagerFactory("imobiliaria");
static EntityManager em = factory.createEntityManager();
//Adiciona um imóvel ao banco de dados.
public static void cadastrarImovel(Object Imovel){
em.getTransaction().begin();
em.merge(Imovel);
em.getTransaction().commit();
}
//Remove o Imóvel
public static void removerImovel(String registro){
Imovel realty= em.find(Imovel.class, registro);
em.getTransaction().begin();
em.remove(realty);
em.getTransaction().commit();
}
//Encontra o Imóvel com base no Registro
public static Imovel pesquisarImovel(int registro){
Imovel realty = em.find(Imovel.class, registro);
return realty;
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>AQUI<<<<<<<<<<<<<<<<<<<
//Quero atualizar a situação com o método a seguir:
public static void atualizarImovel(Object Imovel){
//O que devo colocar no corpo deste método?
//Essa é minha atual tentativa, obviamente não funciona.
em.getTransaction().begin();
em.refresh(Imovel);
em.getTransaction().commit();
}
}
For more details, class Model Building:
@Entity
public class Imovel {
//Thats my Model class, Imovel.
//Declaração das variáveis da classe Imóvel //Imovel means realty.
@Id
@GeneratedValue
private int registro; //registro means register
private String proprietario; //proprietario means owner
private String endereco; //endereco means adress
private String bairro; //bairro means neighborhood
private String cep; //cep means zip code
private String tipodeimovel; //tipodeimovel means kind of realty (flat, house and etc)
private boolean situacao = false; //situacao means situation (if it's available TO rent OR NOT)
//Builder
//Construtor da Classe Imóvel
public Imovel() {
super();
}
//Methods
//Getter do Proprietário do Imóvel
public String getProprietario() {
return proprietario;
}
//Setter do Proprietário do Imóvel
public void setProprietario(String proprietario) {
this.proprietario = proprietario;
}
//Getter do Registro do Imóvel
public int getRegistro() {
return registro;
}
//Getter do Endereço do Imóvel
public String getEndereco() {
return endereco;
}
//Setter do Endereço do Imóvel
public void setEndereco(String endereco) {
this.endereco = endereco;
}
//Getter do Bairro
public String getBairro() {
return bairro;
}
//Setter do Bairro
public void setBairro(String bairro) {
this.bairro = bairro;
}
//Getter do CEP
public String getCep() {
return cep;
}
//Setter do CEP
public void setCep(String cep) {
this.cep = cep;
}
//Getter do Tipo de Imóvel
public String getTipoDeImovel() {
return tipodeimovel;
}
//Setter do Tipo de Imóvel
public void setTipoDeImovel(String tipodeimovel) {
this.tipodeimovel = tipodeimovel;
}
//Getter da Situação do Imóvel
public boolean isSituacao() {
return situacao;
}
//Setter da Situação do Imóvel
public void setSituacao(boolean situacao) {
this.situacao = situacao;
}
}