Mapeamento 1 - n

3 respostas
carlosfip

pessoal espero que vcs me ajudem a solucionar este problema.
Eh o seguinte:
tenho duas classes uma ordemserviço e outra conserto
uma ordemserviço possui n conserto daí fiz:

>>>para a classe conserto tenho os seguintes atributos e os metodos foram gerados automaticamente pelo netbeans

package beans;


public class Conserto {
    private int codigo_c;
    private int codigofuncionario;
    private String tipoconserto;
    private int complexidade;
    private String descricao;
    private boolean roupadiferenciada;
    private float valor;
    
    
    /** Creates a new instance of Conserto */
    public Conserto() {
    }

    public int getCodigo_c() {
        return codigo_c;
    }

    public void setCodigo_c(int codigo_c) {
        this.codigo_c = codigo_c;
    }

    public int getCodigofuncionario() {
        return codigofuncionario;
    }

    public void setCodigofuncionario(int codigofuncionario) {
        this.codigofuncionario = codigofuncionario;
    }

    public String getTipoconserto() {
        return tipoconserto;
    }

    public void setTipoconserto(String tipoconserto) {
        this.tipoconserto = tipoconserto;
    }

    public int getComplexidade() {
        return complexidade;
    }

    public void setComplexidade(int complexidade) {
        this.complexidade = complexidade;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public boolean isRoupadiferenciada() {
        return roupadiferenciada;
    }

    public void setRoupadiferenciada(boolean roupadiferenciada) {
        this.roupadiferenciada = roupadiferenciada;
    }

    public float getValor() {
        return valor;
    }

    public void setValor(float valor) {
        this.valor = valor;
    }
    
}
>>>para a classe OrdemServico tenho os seguintes atributos e os metodos foram gerados automaticamente pelo netbeans
package beans;

import beans.Conserto;
import java.util.Date;

/**
 *
 * @author carlos alberto
 */
public class OrdemServico {
    
    /** Creates a new instance of OrdemServico */
    private int codigo_os;
    private long cpfcliente;
    private float totalservico;
    private Date previsaoentrega;
    private Conserto conserto;
    private String pago;

    public OrdemServico() {
    }

    public int getCodigo_os() {
        return codigo_os;
    }

    public void setCodigo_os(int codigo_os) {
        this.codigo_os = codigo_os;
    }

    public long getCpfcliente() {
        return cpfcliente;
    }

    public void setCpfcliente(long cpfcliente) {
        this.cpfcliente = cpfcliente;
    }

    public float getTotalservico() {
        return totalservico;
    }

    public void setTotalservico(float totalservico) {
        this.totalservico = totalservico;
    }

    public Date getPrevisaoentrega() {
        return previsaoentrega;
    }

    public void setPrevisaoentrega(Date previsaoentrega) {
        this.previsaoentrega = previsaoentrega;
    }

    public Conserto getConserto() {
        return conserto;
    }

    public void setConserto(Conserto conserto) {
        this.conserto = conserto;
    }

    public String getPago() {
        return pago;
    }

    public void setPago(String pago) {
        this.pago = pago;
    }
>>>Vamos as mapeamentos >> Conserto.hbm.xml
<hibernate-mapping package="beans">
    <class name="Conserto">
        <id name="codigo_c">
            <generator class = "sequence">
                <param name = "sequence">codigo_conserto</param>
            </generator>    
        </id>    
        <property name="codigofuncionario"/>
        <property name="tipoconserto"/>
        <property name="complexidade"/>
        <property name="descricao"/>
        <property name="roupadiferenciada"/>
        <property name="valor"/>       
        <many-to-one name="servicos" class="OrdemServico"/>
       
        
    </class>    
</hibernate-mapping>
>> Ordem Servico
<hibernate-mapping package="beans">
    <class name="OrdemServico">
        
        <id name="codigo_os">
            <generator class = "sequence">
                <param name = "sequence">codigo_ordemservico</param>
            </generator>    
        </id>    
        <property name="cpfcliente"/>
        <property name="totalservico"/>
        <property name="previsaoentrega" type="java.util.Date"/>
        <property name="pago"/>
        <set name="consertos" inverse="true" lazy="true">
	    <key column="codigo_ordemservico"/>
	        <one-to-many class="Conserto"/>
        </set>        
    </class>
</hibernate-mapping>

Estou usando o postgres8

O erro que dá eh este:

org.hibernate.PropertyNotFoundException: Could not find a getter for servicos in class beans.Conserto
org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:282)
org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:275)
org.hibernate.mapping.Property.getGetter(Property.java:251)
org.hibernate.tuple.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java:255)
org.hibernate.tuple.AbstractEntityTuplizer.(AbstractEntityTuplizer.java:121)
org.hibernate.tuple.PojoEntityTuplizer.(PojoEntityTuplizer.java:55)
org.hibernate.tuple.TuplizerLookup.create(TuplizerLookup.java:64)
org.hibernate.tuple.EntityMetamodel.(EntityMetamodel.java:257)
org.hibernate.persister.entity.AbstractEntityPersister.(AbstractEntityPersister.java:412)
org.hibernate.persister.entity.SingleTableEntityPersister.(SingleTableEntityPersister.java:108)
org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:215)
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176)
db.DBConexao.(DBConexao.java:37)
handlers.ListaCliente.RequestHandler(ListaCliente.java:32)
servlet.ControllerServlet.doGet(ControllerServlet.java:75)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362

3 Respostas

C

Cara você tem que disponibilizar os métodos set e get para suas entidade persistente.

[]'s clodoaldoJR

carlosfip
Cara você tem que disponibilizar os métodos set e get para suas entidade persistente.

Os métodos já estão disponibilizados. E agora poderia me dizer onde está o erro?

Valew

Luiz_Henrique_Coura

Vc não tem nehum atributo OrdemServico chamado “servicos” na sua entidade Conserto. Por isso acontece esse erro :wink:

outra coisa…

Vc precisa setar em OrdemServico um atributo Set para as suas entidades Conserto. Do jeito q está, OrdemServico tem um único Conserto.

Criado 11 de junho de 2006
Ultima resposta 12 de jun. de 2006
Respostas 3
Participantes 3