Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp
Hibernate version:
2.1
Mapping documents:
Filename Pessoa
===========
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping
>
<class
name="br.syndeo.dms.domain.pessoa.Pessoa"
table="Pessoa"
dynamic-update="false"
dynamic-insert="false"
select-before-update="false"
optimistic-lock="version"
>
<id
name="codigo"
column="codigo"
type="java.lang.Long"
unsaved-value="null"
>
<generator class="native">
<!--
To add non XDoclet generator parameters, create a file named
hibernate-generator-params-Pessoa.xml
containing the additional parameters and place it in your merge dir.
-->
</generator>
</id>
<property
name="razao"
type="java.lang.String"
update="true"
insert="true"
access="property"
>
<column
name="razao"
index="ind_pessoa_razao"
not-null="true"
sql-type="varchar(50)"
/>
</property>
<property
name="nome"
type="java.lang.String"
update="true"
insert="true"
access="property"
>
<column
name="nome"
index="ind_pessoa_nome"
not-null="true"
sql-type="varchar(50)"
/>
</property>
<property
name="dataNascimentoOuFundacao"
type="java.util.Date"
update="true"
insert="true"
access="property"
>
<column
name="dataNascimentoOuFundacao"
not-null="true"
sql-type="date"
/>
</property>
<property
name="numIdentOuInscEstadual"
type="java.lang.String"
update="true"
insert="true"
access="property"
>
<column
name="numIdentOuInscEstatual"
index="ind_pessoa_documento"
not-null="true"
sql-type="varchar(15)"
/>
</property>
<property
name="cpfOuCnpj"
type="java.lang.String"
update="true"
insert="true"
access="property"
>
<column
name="cpfOuCnpj"
not-null="true"
sql-type="varchar(21)"
/>
</property>
<property
name="enderecoWeb"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="enderecoWeb"
length="50"
/>
<property
name="EMail"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="EMail"
length="50"
/>
<property
name="pessoaJuridica"
type="boolean"
update="true"
insert="true"
access="property"
column="pessoaJuridica"
not-null="true"
/>
<property
name="dataCadastro"
type="java.util.Date"
update="true"
insert="true"
access="property"
>
<column
name="dataCadastro"
not-null="true"
sql-type="date"
/>
</property>
<property
name="dataUltimaAlteracao"
type="java.util.Date"
update="true"
insert="true"
access="property"
>
<column
name="dataUltimaAlteracao"
not-null="true"
sql-type="date"
/>
</property>
<list
name="bancos"
table="Banco"
lazy="false"
inverse="false"
cascade="save-update"
>
<key
column="idPessoa"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.Banco"
/>
</list>
<bag
name="divisoes"
table="pessoa_divisao"
lazy="false"
inverse="true"
cascade="all"
order-by="idPessoa"
>
<key
column="idPessoa"
>
</key>
<many-to-many
class="br.syndeo.dms.domain.pessoa.Divisao"
column="idDivisao"
outer-join="auto"
/>
</bag>
<list
name="enderecos"
table="endereco"
lazy="false"
inverse="false"
cascade="all"
>
<key
column="idPessoa"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.Endereco"
/>
</list>
<list
name="telefones"
table="telefone"
lazy="false"
inverse="false"
cascade="all"
>
<key
column="idPessoa"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.Telefone"
/>
</list>
<list
name="contatos"
table="contato"
lazy="false"
inverse="false"
cascade="all"
>
<key
column="idPessoa"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.Contato"
/>
</list>
<bag
name="ramosAtividades"
table="pessoa_ramoAtividade"
lazy="false"
inverse="false"
cascade="all"
order-by="idPessoa"
>
<key
column="idPessoa"
>
</key>
<many-to-many
class="br.syndeo.dms.domain.pessoa.RamoAtividade"
column="idRamoAtividade"
outer-join="auto"
/>
</bag>
<list
name="contasBancarias"
table="ContaBancaria"
lazy="false"
inverse="false"
cascade="all"
>
<key
column="idPessoa"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.ContaBancaria"
/>
</list>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-Pessoa.xml
containing the additional properties and place it in your merge dir.
-->
<joined-subclass
name="br.syndeo.dms.domain.pessoa.Banco"
table="Banco"
dynamic-update="false"
dynamic-insert="false"
>
<key
column="codigo"
/>
<property
name="idPessoa"
type="java.lang.Long"
update="false"
insert="false"
access="property"
column="idPessoa"
/>
<property
name="numeroBanco"
type="int"
update="true"
insert="true"
access="property"
>
<column
name="numeroBanco"
unique-key="unique_Banco"
not-null="true"
sql-type="varchar(20)"
/>
</property>
<property
name="codigoAgencia"
type="int"
update="true"
insert="true"
access="property"
>
<column
name="codigoAgencia"
unique-key="unique_Banco"
not-null="true"
sql-type="varchar(20)"
/>
</property>
</joined-subclass>
<joined-subclass
name="br.syndeo.dms.domain.pessoa.Cliente"
table="Cliente"
dynamic-update="false"
dynamic-insert="false"
>
<key
column="codigo"
/>
<property
name="idColaborador"
type="java.lang.Long"
update="false"
insert="false"
access="property"
column="idColaborador"
/>
<property
name="ativo"
type="boolean"
update="true"
insert="true"
access="property"
column="ativo"
/>
<property
name="contribuinteICMS"
type="boolean"
update="true"
insert="true"
access="property"
column="contribuinteICMS"
/>
<property
name="extinto"
type="boolean"
update="true"
insert="true"
access="property"
column="extinto"
/>
<property
name="potencial"
type="boolean"
update="true"
insert="true"
access="property"
column="potencial"
/>
<property
name="produtorRural"
type="boolean"
update="true"
insert="true"
access="property"
column="produtorRural"
/>
<property
name="subDealer"
type="boolean"
update="true"
insert="true"
access="property"
column="subDealer"
not-null="true"
/>
<property
name="telemarketing"
type="boolean"
update="true"
insert="true"
access="property"
column="telemarketing"
/>
<property
name="vip"
type="boolean"
update="true"
insert="true"
access="property"
column="vip"
/>
<list
name="limitesCreditos"
table="LimiteCredito"
lazy="false"
inverse="false"
cascade="save-update"
>
<key
column="idCliente"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.LimiteCredito"
/>
</list>
<list
name="analisesCriticas"
table="AnaliseCritica"
lazy="false"
inverse="false"
cascade="save-update"
>
<key
column="idPessoa"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.AnaliseCritica"
/>
</list>
</joined-subclass>
<joined-subclass
name="br.syndeo.dms.domain.pessoa.Colaborador"
table="Colaborador"
dynamic-update="false"
dynamic-insert="false"
>
<key
column="codigo"
/>
<property
name="idFuncao"
type="java.lang.Long"
update="false"
insert="false"
access="property"
column="idFuncao"
/>
<property
name="idUnidadeNegocio"
type="java.lang.Long"
update="false"
insert="false"
access="property"
column="idUnidadeNegocio"
/>
<property
name="matricula"
type="java.lang.Long"
update="true"
insert="true"
access="property"
column="matricula"
not-null="true"
/>
<property
name="dataAdmissao"
type="java.util.Date"
update="true"
insert="true"
access="property"
column="dataAdmissao"
not-null="true"
/>
<property
name="dataDemissao"
type="java.util.Date"
update="true"
insert="true"
access="property"
column="dataDemissao"
not-null="true"
/>
<property
name="salario"
type="double"
update="true"
insert="true"
access="property"
column="salario"
not-null="true"
/>
<property
name="situacao"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="situacao"
length="15"
not-null="true"
/>
<property
name="tipoPremioProdutividade"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="tipoPremioProdutividade"
length="15"
not-null="true"
/>
<property
name="autonomo"
type="boolean"
update="true"
insert="true"
access="property"
column="autonomo"
/>
<property
name="comissao"
type="boolean"
update="true"
insert="true"
access="property"
column="comissao"
/>
<property
name="comissaoUsado"
type="boolean"
update="true"
insert="true"
access="property"
column="comissaoUsado"
/>
<property
name="externo"
type="boolean"
update="true"
insert="true"
access="property"
column="externo"
/>
<property
name="produtivo"
type="boolean"
update="true"
insert="true"
access="property"
column="produtivo"
/>
<property
name="terceirizado"
type="boolean"
update="true"
insert="true"
access="property"
column="terceirizado"
/>
<property
name="vendedor"
type="boolean"
update="true"
insert="true"
access="property"
column="vendedor"
/>
<many-to-one
name="funcao"
class="br.syndeo.dms.domain.pessoa.Funcao"
cascade="save-update"
outer-join="auto"
update="true"
insert="true"
access="property"
column="idFuncao"
/>
<many-to-one
name="unidadeNegocio"
class="br.syndeo.dms.domain.pessoa.Empresa"
cascade="save-update"
outer-join="auto"
update="true"
insert="true"
access="property"
column="idUnidadeNegocio"
/>
<list
name="carteiraClientes"
table="Cliente"
lazy="false"
inverse="false"
cascade="all"
>
<key
column="idColaborador"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.Cliente"
/>
</list>
<list
name="metasVenda"
table="MetaVenda"
lazy="false"
inverse="false"
cascade="all"
>
<key
column="idColaborador"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.MetaVenda"
/>
</list>
<list
name="percentuaisComissionamentos"
table="PercentualComissionamento"
lazy="false"
inverse="false"
cascade="all"
>
<key
column="idColaborador"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.PercentualComissionamento"
/>
</list>
<bag
name="regioes"
table="Colaborador_RegiaoAtuacao"
lazy="false"
inverse="true"
cascade="all"
order-by="idColaborador"
>
<key
column="idColaborador"
>
</key>
<many-to-many
class="br.syndeo.dms.domain.pessoa.RegiaoAtuacao"
column="idRegiaoAtuacao"
outer-join="auto"
/>
</bag>
<bag
name="especializacoes"
table="Colaborador_Especializacao"
lazy="false"
inverse="false"
cascade="all"
order-by="idColaborador"
>
<key
column="idEspecializacao"
>
</key>
<many-to-many
class="br.syndeo.dms.domain.pessoa.Colaborador"
column="idColaborador"
outer-join="auto"
/>
</bag>
<list
name="partesDiarias"
table="ParteDiaria"
lazy="false"
inverse="false"
cascade="all"
>
<key
column="idColaborador"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.ParteDiaria"
/>
</list>
</joined-subclass>
<joined-subclass
name="br.syndeo.dms.domain.pessoa.Fabricante"
table="Fabricante"
dynamic-update="false"
dynamic-insert="false"
>
<key
column="codigo"
/>
<property
name="idFabricanteRelacionado"
type="java.lang.Long"
update="false"
insert="false"
access="property"
column="idFabricanteRelacionado"
/>
<property
name="dataUltimaAtualizacaoPreco"
type="java.util.Date"
update="true"
insert="true"
access="property"
column="dataUltimaAtualizacaoPreco"
not-null="true"
/>
<property
name="representado"
type="boolean"
update="true"
insert="true"
access="property"
column="representado"
/>
<property
name="creditoIPI"
type="boolean"
update="true"
insert="true"
access="property"
column="creditoIPI"
/>
<bag
name="revendas"
table="fabricante_empresa"
lazy="false"
inverse="true"
cascade="all"
order-by="idEmpresa"
>
<key
column="idFabricante"
>
</key>
<many-to-many
class="br.syndeo.dms.domain.pessoa.Empresa"
column="idEmpresa"
outer-join="auto"
/>
</bag>
<many-to-one
name="fabricantesRelacionados"
class="br.syndeo.dms.domain.pessoa.Fabricante"
cascade="save-update"
outer-join="auto"
update="false"
insert="false"
access="property"
column="idFabricanteRelacionado"
/>
</joined-subclass>
<joined-subclass
name="br.syndeo.dms.domain.pessoa.Empresa"
table="Empresa"
dynamic-update="false"
dynamic-insert="false"
>
<key
column="codigo"
/>
<property
name="idGestora"
type="java.lang.Long"
update="false"
insert="false"
access="property"
column="idGestora"
/>
<property
name="matriz"
type="boolean"
update="true"
insert="true"
access="property"
column="matriz"
not-null="true"
/>
<property
name="tipoEmpresa"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="tipoEmpresa"
length="15"
not-null="true"
/>
<many-to-one
name="gestora"
class="br.syndeo.dms.domain.pessoa.Empresa"
cascade="save-update"
outer-join="auto"
update="true"
insert="true"
access="property"
column="idGestora"
/>
<list
name="unidadesNegocios"
table="Empresa"
lazy="false"
inverse="false"
cascade="save-update"
>
<key
column="idUnidadeNegocio"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.Empresa"
/>
</list>
<list
name="colaboradores"
table="Colaborador"
lazy="false"
inverse="false"
cascade="save-update"
>
<key
column="idUnidadeNegocio"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.Colaborador"
/>
</list>
<bag
name="distribuidores"
table="fabricante_empresa"
lazy="false"
inverse="true"
cascade="all"
order-by="idEmpresa"
>
<key
column="idEmpresa"
>
</key>
<many-to-many
class="br.syndeo.dms.domain.pessoa.Fabricante"
column="idFabricante"
outer-join="auto"
/>
</bag>
</joined-subclass>
<joined-subclass
name="br.syndeo.dms.domain.pessoa.Contato"
table="Contato"
dynamic-update="false"
dynamic-insert="false"
>
<key
column="codigo"
/>
<property
name="idPessoa"
type="java.lang.Long"
update="false"
insert="false"
access="property"
column="idPessoa"
/>
<property
name="idFuncao"
type="java.lang.Long"
update="false"
insert="false"
access="property"
column="idFuncao"
/>
<property
name="idTipoContato"
type="java.lang.Long"
update="false"
insert="false"
access="property"
column="idTipoContato"
/>
<property
name="principal"
type="boolean"
update="true"
insert="true"
access="property"
column="principal"
/>
<many-to-one
name="tipoContato"
class="br.syndeo.dms.domain.pessoa.TipoContato"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="property"
column="idTipoContato"
/>
<many-to-one
name="funcao"
class="br.syndeo.dms.domain.pessoa.Funcao"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="property"
column="idFuncao"
/>
<bag
name="areasInteresse"
table="Contato_AreaInteresse"
lazy="false"
inverse="false"
cascade="all"
order-by="idContato"
>
<key
column="idContato"
>
</key>
<many-to-many
class="br.syndeo.dms.domain.pessoa.AreaInteresse"
column="idAreaInteresse"
outer-join="auto"
/>
</bag>
</joined-subclass>
<joined-subclass
name="br.syndeo.dms.domain.pessoa.Fornecedor"
table="Fornecedor"
dynamic-update="false"
dynamic-insert="false"
>
<key
column="codigo"
/>
<property
name="idUnidadeNegocio"
type="java.lang.Long"
update="false"
insert="false"
access="property"
column="idUnidadeNegocio"
/>
<property
name="dataMultiploPagto"
type="boolean"
update="true"
insert="true"
access="property"
column="dataMultiploPagto"
/>
<many-to-one
name="unidadeNegocio"
class="br.syndeo.dms.domain.pessoa.Empresa"
cascade="save-update"
outer-join="auto"
update="true"
insert="true"
access="property"
column="idUnidadeNegocio"
/>
<list
name="analisesCriticas"
table="AnaliseCritica"
lazy="false"
inverse="false"
cascade="save-update"
>
<key
column="idPessoa"
>
</key>
<index
column="indice"
type="long"
/>
<one-to-many
class="br.syndeo.dms.domain.pessoa.AnaliseCritica"
/>
</list>
</joined-subclass>
</class>
</hibernate-mapping>
Code between sessionFactory.openSession() and session.close():
Using Spring
Full stack trace of any exception that occurs:
org.springframework.orm.hibernate.HibernateSystemException: Unknown entity class: java.util.LinkedList; nested exception is net.sf.hibernate.MappingException: Unknown entity class: java.util.LinkedList
net.sf.hibernate.MappingException: Unknown entity class: java.util.LinkedList
at net.sf.hibernate.impl.SessionFactoryImpl.getPersister(SessionFactoryImpl.java:347)
at net.sf.hibernate.impl.SessionImpl.getClassPersister(SessionImpl.java:2710)
at net.sf.hibernate.impl.SessionImpl.getPersister(SessionImpl.java:2717)
at net.sf.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:1391)
at net.sf.hibernate.engine.Cascades$4.cascade(Cascades.java:114)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:436)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:503)
at net.sf.hibernate.impl.SessionImpl.doSave(SessionImpl.java:899)
at net.sf.hibernate.impl.SessionImpl.doSave(SessionImpl.java:866)
at net.sf.hibernate.impl.SessionImpl.saveWithGeneratedIdentifier(SessionImpl.java:784)
at net.sf.hibernate.impl.SessionImpl.save(SessionImpl.java:747)
at org.springframework.orm.hibernate.HibernateTemplate$9.doInHibernate(HibernateTemplate.java:494)
at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:312)
at org.springframework.orm.hibernate.HibernateTemplate.save(HibernateTemplate.java:491)
at br.syndeo.dms.persistence.hibernate.BaseDaoHibernateImpl.insert(BaseDaoHibernateImpl.java:43)
at br.syndeo.dms.service.ManterBaseImpl.incluir(ManterBaseImpl.java:19)
at br.syndeo.dms.test.service.ManterFabricanteTest.testIncluir(ManterFabricanteTest.java:47)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:474)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:342)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:194)
Name and version of the database you are using:
MySQl 4.1
The generated SQL (show_sql=true):
Debug level Hibernate log excerpt:
I´m trying to insert some data into the database through my JUnit Test Case and I'm getting this error.
Code:
package br.syndeo.dms.domain.pessoa;
import java.util.Collection;
import java.util.Date;
import java.util.LinkedList;
/**
* REPRESENTA O FABRICANTE DE PRODUTOS COMERCIALIZADOS PELA EMPRESA
* @author Moacir Cardoso
* @version 1.0
* @updated 07-jul-2005 14:01:55
*/
/**
* @hibernate.joined-subclass table="Fabricante"
* @hibernate.joined-subclass-key column="codigo"
*/
public class Fabricante extends Pessoa {
private Long idFabricanteRelacionado;
/**
* É A DATA DA ULTIMA ATUALIZACAO DE PRECO.
*/
private Date dataUltimaAtualizacaoPreco;
/**
* IDENTIFICA SE O FABRICANTE E REPRESENTADO PELA EMPRESA OU NAO.
*/
private boolean representado;
/**
* INDICA SE O FABRICANTE TEM (OU NAO) CREDITO DE IPF.
*/
private boolean creditoIPI;
private Collection fabricantesRelacionados;
private Collection revendas;
// ==========================================================================
public Fabricante() {
idFabricanteRelacionado = new Long(0);
fabricantesRelacionados = new LinkedList();
revendas = new LinkedList();
}
// ==========================================================================
// ==========================================================================
/**
* @hibernate.property insert="false" update="false"
*/
public Long getIdFabricanteRelacionado() { return idFabricanteRelacionado; }
public void setIdFabricanteRelacionado(Long idFabricanteRelacionado) {
this.idFabricanteRelacionado = idFabricanteRelacionado; }
// ==========================================================================
// ==========================================================================
/**
* É A DATA DA ULTIMA ATUALIZACAO DE PRECO.
*
*/
/**
* @hibernate.property not-null="true"
*/
public Date getDataUltimaAtualizacaoPreco() {
return dataUltimaAtualizacaoPreco; }
public void setDataUltimaAtualizacaoPreco(Date dataUltimaAtualizacaoPreco) {
this.dataUltimaAtualizacaoPreco = dataUltimaAtualizacaoPreco; }
// ==========================================================================
// ==========================================================================
/**
* IDENTIFICA SE O FABRICANTE E REPRESENTADO PELA EMPRESA OU NAO.
*
*/
/**
* @hibernate.property
*/
public boolean isRepresentado() { return representado; }
public void setRepresentado(boolean representado) {
this.representado = representado; }
// ==========================================================================
// ==========================================================================
/**
* INDICA SE O FABRICANTE TEM (OU NAO) CREDITO DE IPF.
*
*/
/**
* @hibernate.property
*/
public boolean isCreditoIPI(){ return creditoIPI; }
public void setCreditoIPI(boolean creditoIPI){ this.creditoIPI = creditoIPI; }
// ==========================================================================
// ==========================================================================
/**
* @hibernate.bag
* table="fabricante_empresa" cascade="all"
* inverse="true" order-by="idEmpresa"
* @hibernate.collection-many-to-many
* class="br.syndeo.dms.domain.pessoa.Empresa"
* column="idEmpresa"
* @hibernate.collection-key column="idFabricante"
*/
public Collection getRevendas() { return revendas; }
public void setRevendas(Collection revendas) { this.revendas = revendas; }
public void addRevenda(Empresa empresa) { this.revendas.add(empresa); }
// ==========================================================================
// ==========================================================================
/**
* @hibernate.many-to-one
* cascade="save-update"
* class="br.syndeo.dms.domain.pessoa.Fabricante"
* column="idFabricanteRelacionado"
*/
public Collection getFabricantesRelacionados() { return fabricantesRelacionados; }
public void setFabricantesRelacionados(Collection fabricantesRelacionados) {
this.fabricantesRelacionados = fabricantesRelacionados; }
public void addFabricanteRelacionado( Fabricante fabricante ) {
this.fabricantesRelacionados.add(fabricante);}
// ==========================================================================
} // fim classe
Please help.
thanks Moa.
Code: