猿问

Hibernate 添加基于会话的参数

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

ansi_warnings例如在 SQL Server 中,为了防止插入过程中字符串被截断,我们可以在插入数据之前关闭。

SET ANSI_WARNINGS OFF;
insert into table1(col) values('text more than the length of the column');

但是如果说我们使用方法,如何使用休眠来实现呢getSession().saveOrUpdate()


白衣染霜花
浏览 112回答 2
2回答

海绵宝宝撒

我能够使用 Hibernate 拦截器解决我的问题。覆盖onPrepareStatement.public class MyClass extends EmptyInterceptor {     @Override     public String onPrepareStatement(String sql) {         sql = "SET ANSI_WARNINGS OFF;".concat(sql);         return super.onPrepareStatement(sql);     }}

至尊宝的传说

ConnectionProvider我认为最好的通用方法是通过继承编写您自己的实现ConnectionProviderDelegate。在方法上,您可以运行getConnection()JDBCStatementSET ANSI_WARNINGS OFF;您可以在Hibernate 文档的此页面上查看自定义示例ConnectionProvider以及如何配置它
随时随地看视频慕课网APP

相关分类

Java
我要回答