解決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後,將不報錯。