Lazy - true no one-to-one

3 respostas
tads

Olá,

Como faço lazy= true num relacionamento 1-to-1???

Meus beans estão assim, do jeito que vi no site do hibernate,
mas não dá o resultado esperado. Tenho q fazer isso
por performance caiu muito.

<hibernate-mapping> 
    <class name="Company" table="empresa"> 
      <id name="cnpj" column="cnpj"> 
         <generator class="assigned"/> 
      </id> 
      <property name="name" column="nome"/> 
      <property name="corporateName" column="razao_social"/> 
      <property name="address" column="logradouro"/> 
      <property name="number" column="numero"/> 
         <one-to-one name="monthlyFee" class="MonthlyFee" 
            constrained="false" outer-join="true"/>          
    </class> 
</hibernate-mapping> 

<hibernate-mapping> 
    <class name="MonthlyFee" table="mensalidade"> 
        <id name="cnpj" column="cnpj"> 
           <generator class="foreign"> 
              <param name="property">company</param> 
           </generator> 
         </id> 
         <one-to-one name="company" class="Company" 
           constrained="true" outer-join="false"/>       
        <property name="value" column="valor"/> 
    </class> 
</hibernate-mapping>

obrigado

3 Respostas

ricardolecheta

<one-to-one constrained="true" outer-join="false" class="OutraClasse"/>

esta OutraClasse precisa ser um proxy.

tads

Olá, tudo bom?

Pelo que percebi aki agora, não é isto que está fazendo a performance cair.
Acho q deve ser por causa de “load” recusivo quando faço
o createQuery e além disso estou utilizando left join para buscar os dados.

quanto ao recursivo acontece o seguinte:
Tenho uma Company e dentro desta eu tenho um List de User.

quando executo o createQuery fica mais ou menos Assim:

ArrayList de Company:

Company
	+ name = "Emp 1"
	+ address = "Rua 1"
	+ users = bag
		+ bag = ArrayList
			+ User
				+ name = "user1"
				+ login = "l1"
				+ company = Company
					+ name = "Emp 1"
					+ address = "Rua 1"
					+ users = bag
						+ bag = ArrayList
							+ User
								+ name = "user1"
								+ login = "l1"
								+ company = Company
			+ User
				+ name = "user2"
				+ login = "l2"
				+ company = Company
					+ name = "Emp 1"
					+ address = "Rua 1"
					+ users = bag
						+ bag = ArrayList
							+ User
								+ name = "user1"
								+ login = "l1"
								+ company = Company
	+ name = "Emp 2"
	+ address = "Rua 2"
	+ users = bag
		+ bag = ArrayList
			+ User
				+ name = "user5"
				+ login = "l5"
				+ company = Company

A recussividade no ArrayList acima parece não ter fim… acho q isso
é que está fazendo cair a performance.

O que posso fazer??

obrigado

legionarioba

Ricardo, qual o objetivo de fazer com quea classe seja proxy ? Li umas coisas por alto ,mas ainda não descobri bem a finalidade…

Criado 22 de abril de 2004
Ultima resposta 17 de dez. de 2004
Respostas 3
Participantes 3