如何以编程方式在休眠中添加基于会话的设置?

例如,在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的示例以及如何对其进行配置。

09-27 18:05