Update Variable - SQL Database - Hibernate

Asked

Viewed 65 times

0

here are excerpts from my attempt to create a real estate registration software and users. The project was developed in the MVC structure. (Model, Visualization and Control.

Problem:
How to update an attribute from a Mysql table? The update should be done through commands from the Hibernate interface.

//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, search, remove and attributes in the Immobile table of the database. 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, model class Real estate:

@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;
        }

}

1 answer

0

Use the update method:

 public static void atualizarImovel(Object Imovel){
            em.getTransaction().begin();
            em.update(Imovel);
            em.getTransaction().commit();
    }

Browser other questions tagged

You are not signed in. Login or sign up in order to post.