Boa Tarde,
Tentei realizar o mesmo relacionamento do curso, porém apresenta essa mensage, que não inicializa a lista.
could not initialize a collection: [prjTeste.Entidades.Companhia.ListaBusiness#1][SQL: SELECT listabusin0.CompanhiaId as Compan5_2_1, listabusin0.IdBusiness as IdBusi1_2_1, listabusin0.IdBusiness as IdBusi1_2_0, listabusin0.BusinessCodigo as Busine2_2_0, listabusin0.Nome as Nome3_2_0, listabusin0.CNPJ as CNPJ4_2_0, listabusin0.CompanhiaId as Compan5_2_0 FROM Business listabusin0 WHERE listabusin0.CompanhiaId=?]
Business.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="prjTeste"
namespace="prjTeste.Entidades">
<class name="Business">
<id name="IdBusiness">
<generator class="identity" />
</id>
<property name="BusinessCodigo" />
<property name="Nome" />
<property name="CNPJ" />
<many-to-one name="CompanhiaId" class="Companhia" fetch="join"/>
</class>
</hibernate-mapping>
Classe Business
public class Business
{
public virtual Companhia CompanhiaId { get; set; }
public virtual int IdBusiness { get; set; }
public virtual string BusinessCodigo { get; set; }
public virtual string Nome { get; set; }
public virtual string CNPJ { get; set; }
}
Classe BusinessDAO
class BusinessDAO
{
private ISession session;
public BusinessDAO(ISession session)
{
this.session = session;
}
public void Add(Business business)
{
ITransaction transacao = session.BeginTransaction();
if (business.IdBusiness != 0)
{
session.Update(business);
}
else
{
session.Save(business);
}
transacao.Commit();
}
public Business BuscaPorIdNumber(int IdBusiness)
{
return session.Get<Business>(IdBusiness);
}
public IList<Business> ListBusiness()
{
//IQuery query = session.CreateQuery("from Imposto");
//IList<Imposto> listImposto = query.List<Imposto>();
//return listImposto;
ICriteria criteria = session.CreateCriteria<Business>();
return criteria.List<Business>();
}
}
Companhia.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="prjTeste"
namespace="prjTeste.Entidades">
<class name="Companhia">
<id name="IdCompanhia">
<generator class="identity" />
</id>
<property name="CompanhiaCodigo" />
<property name="Nome" />
<bag name="ListaBusiness" fetch="join">
<key column="CompanhiaId"/>
<one-to-many class="Business"/>
</bag>
</class>
</hibernate-mapping>
Classe Companhia
public class Companhia
{
public virtual int IdCompanhia { get; set; }
public virtual string CompanhiaCodigo { get; set; }
public virtual string Nome { get; set; }
public virtual IList<Business> ListaBusiness { get; set; }
}
Classe CompanhiaDAO
class CompanhiaDAO
{
private ISession session;
public CompanhiaDAO(ISession session)
{
this.session = session;
}
public void Add(Companhia companhia)
{
ITransaction transacao = session.BeginTransaction();
if (companhia.IdCompanhia != 0)
{
session.Update(companhia);
}
else
{
session.Save(companhia);
}
transacao.Commit();
}
public Companhia BuscaPorIdNumber(int IdCompanhia)
{
return session.Load<Companhia>(IdCompanhia);
}
public IList<Companhia> ListCompanhia()
{
//IQuery query = session.CreateQuery("from Imposto");
//IList<Imposto> listImposto = query.List<Imposto>();
//return listImposto;
ICriteria criteria = session.CreateCriteria<Companhia>();
return criteria.List<Companhia>();
}
}