Jump to content
Christophersons

Jpa relacionamento dúvida

Recommended Posts

Estou com um problema e não consigo resolver...

 

@Entity
@Table(name = "Quadro")
@TableModel

public class Quadro implements Serializable, Entidade<Quadro> {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;
  	@OneToOne
    private Quadro quadroPai;
    @OneToMany()
    private List<Quadro> listaQuadros = new ArrayList<Quadro>();
  .
  .
  .

Como faço o mapeamento correto da listaQuadros e também de quadroPai que é do mesmo tipo da classe?

A ideia de funcionamento é que um quadro elétrico pode alimentar outro quadro elétrico ou mais.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By MarKteus
      Olá

      Estou enfrentando um problema bem chato com Java aqui em meu projetos, vejam:
      2019-02-01 08:57:06.469 ERROR 18120 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet] with root cause com.microsoft.sqlserver.jdbc.SQLServerException: Nome de objeto 'db_mybank.dbo.edification' inválido.     at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259) ~[mssql-jdbc-6.4.0.jre8.jar:na] Percebam que ali no nome do objeto está sendo inserido um underline ou underscore como queiram, porém esse traço não é para ser exibido a inserção do mesmo faz com que o objeto não seja encontrado, o pior é que na especificação da classe está correto vejam:
       
      import javax.persistence.Table; @Entity @Table(name = "tbedification", schema = "dbo", catalog = "dbmybank") public class edification implements Serializable { /** * Alguém consegue me ajuda com isso, acho que o hibernate está "zuando" alguma coisa

      Estou usando a ide Eclipse Neon e SpringBoot
    • By Michel DS
      Olá a todos, estou implantando uma aplicação em java usando JPA e Hibernate, estou com um problema no arquivo persistence, esse arquivo possui uma chamada para links externos no começo: 
       
      <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> O problema é que minha aplicação irá rodar em uma rede offiline, quando testo na rede ele não funciona por conta dessas dependências externa, minha pergunta é se existe algum meio de usar esse arquivo offiline?
      Desde já agradeço ao fórum. 
    • By eltonramos
      Pessoal,
       
      Estou fazendo uma aplicação Java com EclipseLink JPA.
      Estou em um ponto que preciso criar um numero sequencial para invocar um método.
      Como posso fazer para que eu gere este numero sequencial e o mantenha sem gerar duplicidades.
      Ja vi alguns exemplos fazendo select max +1 mas eu queria tentar fazer isso via jpa.
      Existe algum jeito de gerar o sequencial antes de persistir.
      Pois persistindo eu já consegui, porem caso a requisição falhe eu perderei este numero pois ja foi persistido.
      Alguém teria alguma ideia para isso.
    • By Solo
      Pessoal boa noite, eu estava fazendo um crud para a classe fornecedores, e nela eu queria puxar uma combox de cidade, porem esta aparecendo esse erro ai eu ja tentei de tudo.... me ajudem por favor.
       
      Message /paginas/fornecedores.xhtml @16,74 value="#{fornecedorController.varcidade}": Property [varcidade] not found on type [br.com.brasil.controller.fornecedorController]
      Description The server encountered an unexpected condition that prevented it from fulfilling the request.
      Exception
      javax.servlet.ServletException: /paginas/fornecedores.xhtml @16,74 value="#{fornecedorController.varcidade}": Property [varcidade] not found on type [br.com.brasil.controller.fornecedorController] javax.faces.webapp.FacesServlet.service(FacesServlet.java:671) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) Root Cause
      javax.el.PropertyNotFoundException: /paginas/fornecedores.xhtml @16,74 value="#{fornecedorController.varcidade}": Property [varcidade] not found on type [br.com.brasil.controller.fornecedorController] com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111) javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182) javax.faces.component.UIOutput.getValue(UIOutput.java:174) javax.faces.component.UIInput.getValue(UIInput.java:291) com.sun.faces.renderkit.html_basic.MenuRenderer.getCurrentSelectedValues(MenuRenderer.java:648) com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:749) com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:847) com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:297) javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920) com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312) com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185) com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856) javax.faces.render.Renderer.encodeChildren(Renderer.java:176) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458) com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219) javax.faces.webapp.FacesServlet.service(FacesServlet.java:659) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) Root Cause
      javax.el.PropertyNotFoundException: Property [varcidade] not found on type [br.com.brasil.controller.fornecedorController] javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:260) javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:212) javax.el.BeanELResolver.property(BeanELResolver.java:347) javax.el.BeanELResolver.getValue(BeanELResolver.java:92) com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) org.apache.el.parser.AstValue.getValue(AstValue.java:169) org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184) com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109) javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182) javax.faces.component.UIOutput.getValue(UIOutput.java:174) javax.faces.component.UIInput.getValue(UIInput.java:291) com.sun.faces.renderkit.html_basic.MenuRenderer.getCurrentSelectedValues(MenuRenderer.java:648) com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:749) com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:847) com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:297) javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920) com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312) com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185) com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856) javax.faces.render.Renderer.encodeChildren(Renderer.java:176) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458) com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219) javax.faces.webapp.FacesServlet.service(FacesServlet.java:659) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)  
       
       
       
      Classe fornecedor>>>>>>>>>>>
       
       
      package br.com.brasil.modelo;
      import javax.persistence.Entity;
      import javax.persistence.GeneratedValue;
      import javax.persistence.GenerationType;
      import javax.persistence.Id;
      import javax.persistence.ManyToOne;
      import javax.persistence.OneToOne;

      @Entity
      public class Fornecedor {
          
          @Id
          @GeneratedValue(strategy= GenerationType.IDENTITY)
          private Integer idFornecedor;
          
          private String Empresa;
          private String Cnpj;
          private String Telefone;
          
          
          @ManyToOne
          private Cidade cidade;
          
          public Integer getIdFornecedor() {
              return idFornecedor;
          }
          public void setIdFornecedor(Integer idFornecedor) {
              this.idFornecedor = idFornecedor;
          }
          public String getEmpresa() {
              return Empresa;
          }
          public void setEmpresa(String empresa) {
              Empresa = empresa;
          }
          public String getCnpj() {
              return Cnpj;
          }
          public void setCnpj(String cnpj) {
              Cnpj = cnpj;
          }
          public String getTelefone() {
              return Telefone;
          }
          public Cidade getCidade() {
              return cidade;
          }
          public void setCidade(Cidade cidade) {
              this.cidade = cidade;
          }
          public void setTelefone(String telefone) {
              Telefone = telefone;
          }
          
      }
       
       
      fornecedor bean  >>>>>>>>>>>>
       
      package br.com.brasil.controller;
      import java.util.List;
      import javax.faces.bean.ManagedBean;
      import javax.faces.bean.ViewScoped;
      import br.com.brasil.dao.DAO;
      import br.com.brasil.modelo.Cidade;
      import br.com.brasil.modelo.Fornecedor;
      @ManagedBean 
      @ViewScoped  
      public class fornecedorController {
          public Fornecedor fornecedor = new Fornecedor();
          public Integer varcidade;
          
          
          public Fornecedor getFornecedor() {
              return fornecedor;
          }
          public void setFornecedor(Fornecedor fornecedor) {
              this.fornecedor = fornecedor;
          }
          public Integer getVarcidade() {
              return varcidade;
          }
          public void setVarcidade(Integer varcidade) {
              this.varcidade = varcidade;
          }
          
          
          public void gravar () {
              Cidade cdd = new DAO<Cidade>(Cidade.class).listaPorId(this.varcidade);
              fornecedor.setCidade(cdd);
              if(this.fornecedor.getIdFornecedor() == null) {
                  new DAO<Fornecedor>(Fornecedor.class).adiciona(fornecedor);
              } else {
                  new DAO<Fornecedor>(Fornecedor.class).atualiza(fornecedor);
              }this.fornecedor= new Fornecedor();
          }
          
          //////////////////////
          
          
          public List<Fornecedor> getTodosFornecedores(){ 
              return new DAO<Fornecedor>(Fornecedor.class).listaTodos();
              
          }
          /////////////////////
          
          public void remover(Fornecedor f){         
              new DAO<Fornecedor>(Fornecedor.class).remove(f.getIdFornecedor());
          }
          
          ////////////////////
          public void carregar (Fornecedor f){ 
              this.fornecedor = f;    
              this.varcidade = f.getCidade().getIdCidade(); //combo
          }
          //////////////////////
          
          public List<Cidade> getTodasCidades(){  
              
              return new DAO<Cidade>(Cidade.class).listaTodos();
              
          }
      }
       
       
      fornecedor xhtml (obs so coloquei a caixa de combo para realizar o testes, falta os outros campos ainda) >>>>>>>>>>>>>>>>>>.
       
      <?xml version="1.0" encoding="ISO-8859-1" ?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      >  

      <h:body> 
          <h:form> <!-- formulario --> 
          <fieldset>                         
          <legend> Dados fonecedores</legend>
          <h:panelGrid>  <!--Um painel--> 
       <h:outputText value="Selecione um cidade" for="cidade"/> 
           <h:selectOneMenu id="cidade" value="#{fornecedorController.varcidade}"> <!--  quando selecionar o meu produto e o seu tipo, ele vai salvar pra mim o meu tipo que alias é de outra tabela -->
           <f:selectItems itemLabel="Selecionar" noSelectionOption="true"/>
           <f:selectItems value="#{fornecedorController.todasCidades}"
           var="estado" itemLabel="#{cidade.nomeCidade}" itemValue="#{cidade.idCidade}"/>  
           </h:selectOneMenu>
           
              
          
          <h:commandButton  value= "Gravar" action="#{fornecedorController.gravar}"/>   
          </h:panelGrid>
          </fieldset>
          
          <h:dataTable value= "#{fornecedorController.todasFornecedores}" var="fornecedores">  
              <h:column>
                  <f:facet name="header">Empresa</f:facet> 
                  <h:outputText value="#{fornecedores.empresa}"/>  
              </h:column> 
              
              <h:column>
                  <f:facet name="header">Cnpj</f:facet> 
                  <h:outputText value="#{fornecedores.cnpj}"/>  
              </h:column> 
              
                  <h:column>
                  <f:facet name="header">Telefone</f:facet> 
                  <h:outputText value="#{fornecedores.telefone}"/>  
              </h:column> 
              
              
              
          
              
              <h:column>
                  <f:facet name="header">Remover</f:facet> <!-- titulo  -->
                  <h:commandLink  value="remove" action="#{fornecedorController.remover(fornecedores)}"/>  <!-- vai ser um link -->
              </h:column> 
              
              
              
              
              
                  
              <h:column>
                  <f:facet name="header">Alterar</f:facet> <!-- titulo  -->
                  <h:commandLink  value="altera" action="#{fornecedorController.carregar(fornecedores)}"/>  <!-- vai ser um link -->
              </h:column> 
              
              
          </h:dataTable>
              </h:form>
      </h:body>
      </html>
       
       
       
       
      me ajudem urgente :( 
       
       
       
       
       
       
       
       
       
    • By MarKteus
      Olá
      Criei um projeto Java com SpringBoot, agora preciso adicionar um novo recurso (módulo) nesse mesmo projeto tbm usando springboot, mas não encontrei como fazer.
      Por exemplo, um menu  Project > Add SpringBoot Component ou algo parecido.

      Alguém como posso fazer isso, qual menu, etc

      Estou usando Eclipse Neon com plugin STS 
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.