Hibernate

3 respostas
S

Tenho uma classe FolhaFuncional e uma FolhaFuncionalId. A tabela Folha_Funcionais tem chave composta…
O problema eh o seguinte: tenho q fazer um relacionamento 1-n dessa tabela Folha_Funcionais com uma outra chamada Folha_Financeiros…
Em FolhaFinanceiro.hbm.xml estah assim:



e em FolhaFuncional estah assim:

o problema eh que as chaves idContratoRh e idSimulacao estao na classe FolhaFuncionalId… como faço pra especificar em que esses campos estao em FolhaFuncionalId???

3 Respostas

RodrigoSol

Se você postar sua dúvida no lugar certo terá mais chances de alguém te ajudar :wink:

C

Você tem que especificar a chave composta da folha funcional:

<composite-id name="folhaFuncionalId" class="FolhaFuncionalId">
        <key-property 
        name="idContratoRH"
        column="ID_CONTRATO_RH"
            type="java.lang.Integer"
            length="6"
    >
        </key-property>
        <key-property 
            name="idSimulacao" 
            column="ID_SIMULACAO" 
            type="java.lang.Integer"
            length="6"
        >
        </key-property>
    </composite-id>
S

Pessoal, resolvi postar todos arquivos para q assim alguem me diga o q estah errado…

FolhaFuncional.hbm.xml ficou assim:

[color=red]<?xml version="1.0" encoding="ISO-8859-1"?>

<class
    name="FolhaFuncional"
    table="FOLHA_FUNCIONAIS">

    <composite-id class="FolhaFuncionalId" name="id">
        <key-property name="idContratoRh"
                column="ID_CONTRATO_RH"/>
        <key-property name="idSimulacao"
                column="ID_SIMULACAO"/>
    </composite-id>

    <!--PROPRIEDADES-->

    <set name="contraCheque" inverse="true">
        <key>
            <column name="ID_CONTRATO_RH" />
            <column name="ID_SIMULACAO" />
        </key>
        <one-to-many class="FolhaFinanceiro" />
    </set>

</class>

[/color]

FolhaFuncional.java:

[color=red]package br.ufsm.cpd.contracheque;

import java.util.*;

public class FolhaFuncional {

private FolhaFuncionalId id;

private Set contraCheque = new HashSet();
//construtores, gets e sets...

}[/color]

FolhaFuncionalId.java:

[color=red]package br.ufsm.cpd.contracheque;

import java.io.Serializable;

public class FolhaFuncionalId implements Serializable {

private Integer idContratoRh;

private Integer idSimulacao;

//construtores, gets e sets…
}[/color]

FolhaFinanceiro.hbm.xml:

[color=red]<?xml version="1.0" encoding="ISO-8859-1"?>

<class
    name="FolhaFinanceiro"
    table="FOLHA_FINANCEIROS">

    <composite-id class="FolhaFinanceiroId" name="id">
        <key-property name="idVariavel"
                column="ID_VARIAVEL"/>
        <key-property name="idContratoRh"
                column="ID_CONTRATO_RH"/>
        <key-property name="idRubrica"
                column="ID_RUBRICA"/>
        <key-property name="idSimulacao"
                column="ID_SIMULACAO"/>
        <key-property name="seqPgto"
                column="SEQ_PGTO"/>
        <key-property name="prazoPgto"
                column="PRAZO_PGTO"/>
    </composite-id>

    <!--PROPRIEDADES-->

    <many-to-one
        name="folha"
        update="false" insert="false">
            <column name="ID_CONTRATO_RH" />
            <column name="ID_SIMULACAO" />
    </many-to-one>

</class>

[/color]

FolhaFinanceiro.java

[color=red]package br.ufsm.cpd.contracheque;

public class FolhaFinanceiro {

private FolhaFinanceiroId id;

private Float vlPgto;

private FolhaFuncional folha;
//construtores, gets e sets...

}[/color]

FolhaFinanceiroId.java

[color=red]package br.ufsm.cpd.contracheque;

import java.io.Serializable;

public class FolhaFinanceiroId implements Serializable{

private Integer idSimulacao;

private Integer idContratoRh;

private Integer idVariavel;

private Integer seqPgto;

private Integer prazoPgto;
//construtores, gets e sets...

}[/color]

eh isso ai, se possivel alguem me diz onde estah o problema…

Criado 21 de dezembro de 2004
Ultima resposta 22 de dez. de 2004
Respostas 3
Participantes 3