【发布时间】:2012-02-01 17:58:26
【问题描述】:
我正在使用 NHibernate 3.2
我正在进行事务,保存一些东西,在提交之前,我试图查询一些元素,这会引发 oracle 插入错误。
我的查询(HQL):
MySession = SessionFactory.OpenSession().BeginTransaction();
/*Do some saves but don't commit*/
var hql = @"select distinct c
from Car c inner join c.Manufacturer manuf where manuf.Id = 449"
MySession.CreateQuery(hql).List<Car>(); /*throws error*/
当我执行这个查询时,它会抛出以下错误
ORA-01400: cannot insert NULL ...
我的映射是通过以下方式创建的:
lazy="true" dynamic-update="true" dynamic-insert="true"
会话工厂代码:
private static ISessionFactory _sessionFactory;
private static ISessionFactory SessionFactory
{
get
{
if (_sessionFactory == null)
{
var configuration = new Configuration();
configuration.Configure();
configuration.AddAssembly(typeof(EstoqueEquipamento).Assembly);
_sessionFactory = configuration.BuildSessionFactory();
}
return _sessionFactory;
}
}
public static ISession OpenSession()
{
return SessionFactory.OpenSession();
}
谢谢。
【问题讨论】:
-
什么时候刷新/提交会话?
-
将是我查询之后的行,但由于引发错误,它永远不会到达那里。
标签: c# oracle nhibernate hql