如何以编程方式在休眠中添加基于会话的设置?ansi_warnings例如在 SQL Server 中,为了防止插入过程中字符串被截断,我们可以在插入数据之前关闭。SET ANSI_WARNINGS OFF;
insert into table1(col) values('text more than the length of the column');但是如果说我们使用方法,如何使用休眠来实现呢getSession().saveOrUpdate()?
2 回答
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
我能够使用 Hibernate 拦截器解决我的问题。覆盖onPrepareStatement.
public class MyClass extends EmptyInterceptor {
@Override
public String onPrepareStatement(String sql) {
sql = "SET ANSI_WARNINGS OFF;".concat(sql);
return super.onPrepareStatement(sql);
}
}
至尊宝的传说
TA贡献1789条经验 获得超10个赞
ConnectionProvider
我认为最好的通用方法是通过继承编写您自己的实现ConnectionProviderDelegate
。
在方法上,您可以运行getConnection()
JDBCStatement
SET ANSI_WARNINGS OFF;
您可以在Hibernate 文档的此页面上查看自定义示例ConnectionProvider
以及如何配置它
添加回答
举报
0/150
提交
取消