Hibernate Herança Single Table - Nao consigo inserir os dados.
21/04/2016
0
Tenho uma classe chamada produto e desse produto tenho 3 subclasses que herdam atributos da classe produto, mas nao estou conseguindo mandar os dados e salvar no banco, estou procurando feito louco mas nao consigo encontrar o problema em lugar nenhum (ate entao tenho somente 1 subclasse pronta)
Essa e a classe Produto
Sub classe Livro que herda de Produto
Estou inserindo os dados atraves de um metodo de uma classe operaçoes (e ai onde nao sei se estou fazendo certo)
E so para confirmar estou mapeando as classes no hibernate.cfg.xml deste jeito:
Essa e a classe Produto
@Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = "tipo_produto",discriminatorType = DiscriminatorType.STRING) public class Produtos{ @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer codigo; private String nome; private String descricao; private Integer estoque; private String categoria; private Double pvenda; public void setNome(String nome) { this.nome = nome; } public void setDescricao(String descricao) { this.descricao = descricao; } public void setEstoque(Integer estoque) { this.estoque = estoque; } public void setCategoria(String categoria) { this.categoria = categoria; } public void setPvenda(Double pvenda) { this.pvenda = pvenda; } }
Sub classe Livro que herda de Produto
@Entity @DiscriminatorValue(value = "Livros") public class Livros extends Produtos { private Integer qtpaginas; private String editora; private String autor; public void setQtpaginas(Integer qtpaginas) { this.qtpaginas = qtpaginas; } public void setEditora(String editora) { this.editora = editora; } public void setAutor(String autor) { this.autor = autor; } }
Estou inserindo os dados atraves de um metodo de uma classe operaçoes (e ai onde nao sei se estou fazendo certo)
public class Operacoes { Scanner input = new Scanner(System.in); SessionFactory factory = new Configuration().configure().buildSessionFactory(); Session sessao = factory.openSession(); public void ProdutoCadast(int opcao){ switch (opcao){ case 3: Livros livros = new Livros(); System.out.println("Digite o nomedo produto: "); livros.setNome(input.nextLine()); System.out.println("Digite a editora: "); livros.setEditora(input.nextLine()); System.out.println("Digite o autor: "); livros.setAutor(input.nextLine()); System.out.println("Digite a descricao: "); livros.setDescricao(input.nextLine()); System.out.println("Digite a categoria: "); livros.setCategoria(input.nextLine()); System.out.println("Digite a quantidade de paginas: "); livros.setQtpaginas(input.nextInt()); System.out.println("Digite a quantidade de estoque: "); livros.setEstoque(input.nextInt()); System.out.println("Digite o preco de venda: "); livros.setPvenda(input.nextDouble()); sessao.beginTransaction(); sessao.persist(livros); break; } sessao.getTransaction().commit();
E so para confirmar estou mapeando as classes no hibernate.cfg.xml deste jeito:
<mapping class="Gerenciamento.loja.Clientes"/> <mapping class="Gerenciamento.loja.Produtos"/>
Luis Eduardo
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)