PROBLEMÃO hibernate

2 respostas
tads

Olá, tudo bom?

Apareceu um problema aki que eu não tinha testado.
Eu tenho uma classe Order (onde usuário faz pedido) e este pode
ter vários objectos Parcel, ou seja o cara pode parcelar o pedido,
ou não…

No mapeamento eu coloquei lazy = false, pois sempre tem q exibir
as parcelas do pedido, mas quando insere um pedido sem parcelas,
o hibernate não retorna nada.

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
   "-//Hibernate/Hibernate Mapping DTD//EN"
   "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>
    <class name="Order" table="pedido">
		<id name="nbOrder" column="nr_pedido">
			<generator class="native">
				<param name="sequence">seq_pedido</param>
			</generator>
		</id>        
        <bag name="parcels" inverse="true" lazy="false">
			<key column="nr_pedido"/>
			<one-to-many class="Parcel"/>
        </bag>
    </class>
</hibernate-mapping>



<hibernate-mapping>
    <class name="Parcel" table="parcela">
		<id name="idParcel" column="id_parcela">
			<generator class="native">
				<param name="sequence">seq_parcela</param>
			</generator>
		</id>        
		<many-to-one name="Order" column="nr_pedido"
			class="Order"/>
		<property name="nbParcel" column="nr_parcela"/>
        <property name="value" column="valor"/>
    </class>
</hibernate-mapping>

Então, se o usuário coloca parcelas, na tela ele busca o pedido e as parcelas, mas qdo o cara não coloca parcelas, então nem exibe o pedido…

Eu estou utilizando Oracle…

Alguém por favor pode me ajudar???

obrigado,

Tadeu

2 Respostas

tads

Pessoal, descobri o que era…

meu, eu tava fazendo a seguinte query para buscar os pedidos:

select distinct o from Order o join o.parcels parcel

Mas o correto é:

select distinct o from Order o left join o.parcels parcel

Esqueci o left na query… por isso só estava buscando dados
onde os pedidos DEVERIM TER parcelas, senão não exibia…

E assim a gente vai levando… apanhando e aprendendo… demais!!!

abraço,

ricardolecheta

legal, eu estava aqui pensando no que poderia ser :slight_smile:

Criado 5 de fevereiro de 2004
Ultima resposta 5 de fev. de 2004
Respostas 2
Participantes 2