如何以编程方式在休眠中添加基于会话的设置?
例如,在SQL Server中,为防止在插入过程中字符串被截断,我们可以在插入数据之前关闭ansi_warnings
。
SET ANSI_WARNINGS OFF;
insert into table1(col) values('text more than the length of the column');
但是,如果说我们使用
getSession().saveOrUpdate()
方法,则如何使用休眠方式实现呢? 最佳答案
我认为最好的通用方法是通过继承ConnectionProvider
编写自己的ConnectionProviderDelegate
实现。
在getConnection()
方法上,可以使用Statement
运行JDBC SET ANSI_WARNINGS OFF;
您可以在Hibernate documentation的此页面上查看自定义ConnectionProvider
的示例以及如何对其进行配置。