问题标签 [sessionfactory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1155 浏览

nhibernate - Web 服务 nHibernate SessionFactory 问题

我有一个 C# .Net Web 服务。我正在调用一个使用 nHibernate 连接到我的数据库的 dll (C# .Net)。当我调用 dll 时,它会对数据库执行查询并加载父对象“任务”。但是,当 dll 尝试访问子对象“Task.SubTasks”时,会引发以下错误:

我是 nHibernate 的新手,所以不确定我缺少什么代码。

在调用 dll 之前,我是否需要在我的 Web 服务中启动工厂会话?如果是这样,我该怎么做?

编辑:添加了 Web 服务代码和 CreateContainer() 方法代码。此代码在调用 dll 之前被调用

编辑:添加 DLL 代码和存储库代码...

DLL 代码

任务存储库

子任务的存储库

0 投票
2 回答
1279 浏览

spring - Spring 和 Hibernate SessionFactory 的问题:域对象范围仅限于会话

我一直在我的 Spring/Hibernate 应用程序中使用会话工厂(注入 DAO 对象的单例 Bean),我正在使用服务层架构,并且遇到以下问题:

每当我从数据库中获取域对象时,它都会使用休眠会话工厂提供的新会话。在多次请求同一行的情况下,这会导致具有同一域对象的多个实例。(如果使用单个会话,它将返回指向同一引用的多个对象)因此,对这些域对象之一所做的任何更改都不会被表示同一行的其他域对象考虑在内。

我正在开发一个具有多个视图的 SWING 应用程序,并且我从不同的位置(和查询)获得相同的数据库行,因此我需要获取指向同一实例的域对象。

那么我的问题是,这是使用 SessionFactory 实现这一点的一种方法吗?如果没有,对我的整个应用程序使用单个会话是否是一种好习惯?在这种情况下,我应该如何以及在哪里声明这个会话?(应该是像 sessionFactory 一样注入到 DAO 对象中的 bean 吗?)

预先感谢您的帮助

0 投票
1 回答
1273 浏览

spring - sessionFactory 的注入不起作用

我是 Spring 新手,我想注入 sessionFactory 并且它根本不起作用。我正在启动一个 Web 服务器 Jetty,然后加载上下文。在我启动 GWT Web 应用程序后,我在服务器端进行调用并尝试获取一些信息,但我得到一个空指针。根本没有错误,因此很难知道问题出在哪里。我知道它应该可以工作,因为我看到它在我之前工作过的一个项目上工作。任何帮助将不胜感激。(对不起我可能英语不好)

这是 context.xml :

这是主要的:

这是我想要注入的类 Test :

这是应用程序的服务器端(未完全显示)

…………………………………………………………………………………………………………

MySQL 表是按应有的方式创建的,因此所有扫描似乎都有效。

谢谢

鲍勃

0 投票
2 回答
16392 浏览

spring - 视图中的休眠打开会话:每个请求的事务?

我在 Tomcat 上使用 Hibernate 和 Spring。我一直在阅读和重新阅读经常指向该主题的JBoss wiki 页面,这很有帮助。但这给我留下了一些问题。

  1. 为每个请求启动事务的想法让我很困扰。我想我可以将过滤器限制为某些控制器——也许将我所有需要事务的控制器放在伪“tx”路径或其他东西下。但是,如果您不知道是否需要交易,那么使用交易不是一个坏主意吗?如果我只是在一些请求中进行读取——很可能来自缓存的读取——没有事务我不是更好吗?

  2. 我已经阅读了提到他们如何在服务层处理事务的帖子,我想用 Spring 来做这件事。但是过滤器代码是什么样的呢?我仍然希望会话在我的视图中可用以进行一些延迟加载。

  3. 如果我所要做的就是调用sessionFactory.getCurrentSession()我的过滤器,它如何“释放”回会话工厂以供重用?(即使在使用事务时,我也希望看到 asession.close()或其他东西。)谁告诉会话工厂该会话可以重用?

  4. 也许是beginTransaction()在请求期间将给定数据库连接绑定到给定会话的调用?否则,会话会根据需要从池中提取数据库连接,对吗?

感谢您对我所有问题的耐心等待。

(如果你的答案是指向 Spring 文档的链接,那你只会让我哭泣。你不希望这样,是吗?如果人们不再回答与 Spring 相关的问题,我会付真金白银的。方式。)

0 投票
1 回答
418 浏览

database - 为 nhibernate 指定命名 SQL Server 实例

我第一次尝试在 ASP.NET MVC 3 应用程序上使用流利的 nHibernate。因为我有多个 SQL Server Express 实例,所以在使用 Fluently.Configure() 方法创建会话工厂时,我一直在尝试指定一个命名实例以及服务器。我的数据库连接字符串的格式为:

这会导致 nHibernate 异常读取:

初始化字符串的格式不符合从索引 19 开始的规范

其中给定的索引对应于实例名称之前的斜杠。此连接字符串适用于 Entity Framework 4。那么如何在 nHibernate 中指定要连接的命名实例?

0 投票
1 回答
514 浏览

java - 休眠会话

我在学习 Hibernate 时遇到了问题。我写了 UnitTest 并尝试将对象添加到数据库中。所有选择都正常工作,但插入不能正常工作。

我也尝试这样的事情

它向我抛出事务未成功启动的异常,但它添加了用户

这是一个例外

org.springframework.transaction.TransactionSystemException:无法回滚休眠事务;嵌套异常是 org.hibernate.TransactionException: Transaction not successfully started at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:845) ) 在 org.springframework.test.context.transaction.TransactionalTestExecutionListener$TransactionContext.endTransaction(TransactionalTestExecutionListener.java:512) 在 org.springframework.test 的 org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:822)。上下文.事务。

0 投票
1 回答
4651 浏览

java - Hibernate 异常:没有 Hibernate Session 绑定到 Thread

当我尝试打开会话时,我正在尝试使用 Hibernate 我得到以下异常

这是我的配置

调度程序 Servlet

服务

和 serviceImpl

0 投票
2 回答
5602 浏览

spring - Spring + Hibernate + DAO + SessionFactory + Inject

我将 Spring 与 Hibernate 一起使用,并始终为 sessionFactory 对象获取 NPE。

我的配置文件:

}

我的 DAOImpl 课程:

测试用例:

}

应用程序上下文.xml

测试上下文.xml

当测试调用 insert 方法时,我总是从 currentSession 获得 NPE。

0 投票
2 回答
5662 浏览

hibernate - Hibernate:我们究竟需要在哪里关闭 SessionFactory 对象

我正在为我的 Application 使用 Hibernate 3 版本。

在浏览有关 Hibernate 的教程时,我发现SessionFactory应该只为应用程序创建一次。因此,为此我决定在类中使用静态块和静态方法来返回它,如图所示。

我究竟需要在哪里关闭这个sessionFactory对象,以便它转售内存?

0 投票
1 回答
355 浏览

asp.net-mvc-2 - 使用 NHibernate 的 MVC 中的数据库权限

我正在使用 Fluent NHibernate 开发 Intranet MVC Web 应用程序。

众所周知,创造必要ISessionFactory是很重的,因此应该只做一次。因此,我在 期间在 Global.asax 文件中创建它Application_Start,然后将其缓存在应用程序中以备将来使用。

问题是我只想向已经拥有数据库权限的用户授予访问权限。

理论上,这可以通过Integrated Security=SSPI在连接字符串中定义(而不是通过提供 SQL 用户名和密码)来解决。

但是,这会在 期间引发错误Fluently.Configure,因为配置发生在 期间Application_Start,该配置由托管应用程序的进程运行,该进程无权连接到数据库。

我该如何解决这个问题?