Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp
Hi, When i try to get data from table i am getting all the columns and data except foreign key column and data.I am not getting error but i couldnot get foreign key column.And when i try to inser data data to the table i am getting error like cannot insert data int to DVBStatus.I know i can get error like this.but how can insert data into this.Could you please help.If you tell me the solution it would be great.I have been working on this since 3 days.
Hibernate version:
1.2.1GA
My DVBChannel Class
namespace FreeView
{
public class DVBChannel
{
private int dVBChannelIDField;
private int dVBChannelNoField;
private string dVBChannelNameField;
private string dVBChannelURLField;
private string ePGDataFileField;
private string descriptionField;
private FreeView.DVBStatus DVBStatus1 = null;
public DVBChannel()
{
}
public virtual int DVBChannelID
{
get
{
return this.dVBChannelIDField;
}
set
{
this.dVBChannelIDField = value;
}
}
public virtual int DVBChannelNo
{
get
{
return this.dVBChannelNoField;
}
set
{
this.dVBChannelNoField = value;
}
}
public virtual string DVBChannelName
{
get
{
return this.dVBChannelNameField;
}
set
{
this.dVBChannelNameField = value;
}
}
public virtual string DVBChannelURL
{
get
{
return this.dVBChannelURLField;
}
set
{
this.dVBChannelURLField = value;
}
}
private int statusid;
//[ManyToOne(Column = "DVBStatusId", NotNull = true)]
public virtual FreeView.DVBStatus DVBStatusID
{
get
{
return DVBStatus1;
}
set
{
DVBStatus1 = value;
}
}
public virtual string EPGDataFile
{
get
{
return this.ePGDataFileField;
}
set
{
this.ePGDataFileField = value;
}
}
public virtual string Description
{
get
{
return this.descriptionField;
}
set
{
this.descriptionField = value;
}
}
}
}
DVBStatus Class
namespace FreeView
{
public class DVBStatus
{
private int DVBStatusIDField;
private string DescriptionField;
private ISet DVBChannellist = new HashedSet();
public DVBStatus()
{
}
public virtual int DVBStatusID
{
get
{
return this.DVBStatusIDField;
}
set
{
this.DVBStatusIDField = value;
}
}
public virtual string Description
{
get
{
return this.DescriptionField;
}
set
{
this.DescriptionField = value;
}
}
public virtual ISet DVBChannel
{
get { return this.DVBChannellist; }
set
{
this.DVBChannellist = value;
}
}
}
}
Mapping documents:
DVBChannel Mapping
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="FreeView" assembly="FreeView" default-access="property">
<class name="DVBChannel" lazy="false" table="DVBChannel" >
<id name="DVBChannelID" column="DVBChannelID" type="int">
<generator class="increment"></generator>
</id>
<property name="DVBChannelNo" column="DVBChannelNo" type="int"/>
<property name="DVBChannelName" column="DVBChannelName" type="string"/>
<property name="DVBChannelURL" column="DVBChannelURL" type="string"/>
<many-to-one name="DVBStatusID" class="DVBStatus" column="DVBStatusID" cascade="all" not-null="true" insert="false" update="false" />
<property name="EPGDataFile" column="EPGDataFile" type="string"/>
<property name="Description" column="Description" type="string"/>
</class>
</hibernate-mapping>
DVBStatus Mapping
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="FreeView" assembly="FreeView" default-access="property">
<class name="DVBStatus" table="DVBStatus" lazy="false" >
<id name="DVBStatusID" column="DVBStatusID" type="int">
<generator class="increment"></generator>
</id>
<property name="Description" column="Description" type="string" />
<set name="DVBChannel" cascade="all" lazy="true" inverse="true" >
<key column="DVBStatusID"/>
<one-to-many class="DVBChannel"/>
</set>
</class>
</hibernate-mapping>
Code between sessionFactory.openSession() and session.close():
This is getting data from table
NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
cfg.Configure();
cfg.AddAssembly("FreeView");
NHibernate.ISessionFactory factory = cfg.BuildSessionFactory();
NHibernate.ISession session = factory.OpenSession();
NHibernate.ITransaction trns = session.BeginTransaction();
IList user1 = session.CreateCriteria(typeof(DVBChannel)).List();
GridView1.DataSource = user1;
GridView1.DataBind();
trns.Commit();
session.Close();
This is inserting data from the table
NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
cfg.Configure();
cfg.AddAssembly("FreeView");
NHibernate.ISessionFactory factory1=cfg.BuildSessionFactory();
NHibernate.ISession session1 = factory1.OpenSession();
NHibernate.ITransaction trns1 = session1.BeginTransaction();
DVBChannel channel = new DVBChannel();
DVBStatus status = new DVBStatus();
session1.Lock(status, NHibernate.LockMode.None);
channel.DVBChannelNo = 20;
channel.DVBChannelName = "Mana Telugu";
channel.DVBChannelURL = "http://ManaTelugutv.com/";
status.AddChannel(channel);
channel.DVBStatusID = 1;
channel.EPGDataFile = "ManaTelugu.aspx";
channel.Description = "This is Mana Telugu Channel";
session1.SaveOrUpdate(channel);
trns1.Commit();
session1.Close();
Response.Write("The Values Saved Succesfully");
Full stack trace of any exception that occurs:
Name and version of the database you are using:
sqlserver 2005
The generated SQL (show_sql=true):
Debug level Hibernate log excerpt:
Problems with Session and transaction handling?
Read this:
http://hibernate.org/42.html