问题标签 [nhibernate-4]
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.
hibernate - Hibernate Envers 审计
我将 Hibernate4 与 envers 一起用于审计日志记录目的。
我有一张桌子:
Hibernate 已经创建了一个审计表PRODUCTS_AUD
。
每当Product
描述发生变化时,Hibernate 都会跟踪先前记录中的变化。
有些记录只是Product_desc
改变了。某些记录仅product_fees
针对特定的Product_id
. 他们是一种找出修订之间所有更改字段的方法吗?
c# - Parallel.ForEach 与 NHibernate 一起使用导致 SQL Server 锁
首先,我不是多线程和并行编程方面的专家。
我正在尝试优化旧版应用程序 ( .Net 4
, NHibernate 2.1
) 的性能。
**到目前为止,升级NHibernate
不是优先事项,但正在筹备中。
随着时间的推移,随着数据的增长,性能已经成为一场噩梦。我见过的一个项目是一个Parallel.ForEach
语句,它调用一个获取和更新复杂实体(具有多个关系 - 属性和集合)的方法。
这段代码具有以下形式(为清楚起见进行了简化):
SQL Server 间歇性地报告数据库锁定错误,并出现以下错误:
Transaction (Process ID 20) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction
我怀疑这是由于发生了一些导致死锁的竞争条件,即使ISessions
是分开的。
最多可以有 1000 个项目,每个项目都有处理的ICollection<TheClass>
属性和子集合,生成许多SELECT
和UPDATE
语句(使用“NHibernate Profiler”确认)
有没有更好的方法以并行方式处理这个问题,或者我应该将代码重构为传统循环?
我知道我也可以使用以下方法实现我的代码:
foreach
同一ISession
上下文中的循环- 使用无状态会话
- 设置
Environment.BatchSize
为合理的值
或者
- 使用 SQL 批量复制
Parallel.ForEach
我还阅读了很多关于 SQL Server 死锁和容易陷入陷阱的好信息 :
c# - 如何在 HQL 中选择布尔文字?
我可以像这样在 HQL 中选择 int 和 string 文字:
select 'a string' as StringLiteral, 1 as IntLiteral from Eg.MyClass
但我还没有找到选择布尔文字的方法。我试过了select true ...
,select new bool true ...
但是那些会导致 HQL 语法异常。
有没有办法在 HQL 中选择布尔文字?
我找到了一种解决方法(select case when (1=1) then true...
),但这似乎效率低下......
c# - 如何使用 NHibernate 急切获取多级对象
我有以下实体:
以及它们的映射:
我想使用 NHibernate 4 获取 Eager 所有级别当我尝试通过 ID 获取单个父级时,例如:
我得到“不能同时取多个包”异常
c# - NHibernate 认为按列排序不在选择中
我正在尝试获取查询结果的第 2 页,这是我的代码构建的准备好的语句 SQL 查询:
然后将其参数化等,并SetFetchSize()
在SetFirstResult()
构造的IQuery
. 在第 1 页,这工作正常,但在第 2 页我得到这个异常:
我非常清楚地选择*
了,所以我认为异常消息可能是正确的,如果我将其更改为SELECT DISTINCT Contents.*, Contents.Created
足够肯定我会得到一个System.Data.SqlClient.SqlException: The column 'Created' was specified multiple times for 'q_'.
那么这个错误信息的真正含义是什么?
我正在使用 NHibernate 4.0.4.4000 和 SQL Server Express 2008 64 位 10.0.6。
spring - 无法解析 Hibernate4 的类
我实际上是在尝试在新的 Spring Boot 应用程序中导入外部 dao 和外部持久性。我以前从未这样做过,根据另一个开发人员的解释,我创建了:
应用程序上下文.xml:
然后是 Spring-hibernate-config.xml:
问题是它找不到“org.springframework.orm.hibernate4.LocalSessionFactoryBean”
我是不是忘记了什么?
编辑:我试图在 pom.xml 中强制休眠 4(添加一个属性并在最后声明休眠依赖项):
但它并没有解决问题,我在配置 xml 中仍然有“无法解析类或包 hibernate4”....
我完全不知道如何解决这个问题......