如何以編程方式在休眠中添加基于會話的設置?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
提交
取消