解决hibernate连sybase出现的"SET_READONLY_TRUE"警告
原因:
java.sql.Connection有一个setReadOnly(boolean)方法用以通知数据库优化返回的结果集,但Sybase及Sybase ASE不需要。
解决:
Darrell Fuller已经解决了此问题。
(参见http://forums.hibernate.org/viewtopic.php?p=2209134&highlight=&sid=d94eb4a43870a4d8303b6557af2aee5d)
Sybase及SQLAnywher有一叫spt_mda的系统表,修改此表中的数据,可解决此问题。(此表在Sybase存放在master数据库中)
ASA数据库
(参见http://forums.hibernate.org/viewtopic.php?p=2209134&highlight=&sid=d94eb4a43870a4d8303b6557af2aee5d)
Sybase及SQLAnywher有一叫spt_mda的系统表,修改此表中的数据,可解决此问题。(此表在Sybase存放在master数据库中)
通过“select * from spt_mda where mdinfo='SET_READONLY_FALSE' or mdinfo='SET_READONLY_TRUE'”的语句可列出相应内容:
mdinfo | querytype | query |
---|---|---|
SET_READONLY_FALSE | 3 | |
SET_READONLY_TRUE | 3 |
使用
update spt_mda set querytype = 4, query = '0'
where mdinfo = 'SET_READONLY_FALSE'
及
update spt_mda set querytype = 4, query = '0'
where mdinfo = 'SET_READONLY_TRUE'
的语句将此表修改。原来的3代表不支持,因此发出SQLWarning。改为4及0后,将不报错。