我想使用HSQLDB作爲嵌入式數據庫,但無法將其自動增量到自動增量。使用HSQLDB自動增量(2.2.8)+ DDLUtils
據我所知,[CALL] IDENTITY()
可以用來獲取最後的主鍵值。但是,通過iBatis和HSQLDB的DatabaseManagerSwing
實驗持續返回0值。
如何獲得自動增量以使用HSQLDB?
編輯:
我沒有提到,我使用DDLUtils來自動生成表格。下面不西裝HSQLDB:
<?xml version="1.0"?>
<!DOCTYPE database SYSTEM "http://db.apache.org/torque/dtd/database.dtd">
<database name="testdb">
<table name="users">
<!-- using autoincrement attribute below causes
"primary key already exists" exception -->
<column name="id" type="INTEGER" primaryKey="true" />
<column name="username" type="VARCHAR" size="30" />
<column name="password" type="VARCHAR" size="100" />
</table>
</database>
而且,這是用於域類iBatis的SQL地圖:
<insert id="insertUser" parameterClass="user">
<selectKey keyProperty="id" resultClass="int">
CALL IDENTITY()
</selectKey>
INSERT INTO USERS
(USERNAME, PASSWORD)
VALUES
(#username#, #password#)
</insert>
你使用什麼版本的HSQLDB? – 2012-02-19 00:12:46
@EmmanuelBourg這是2.2.8,它可能是最新的。 – 2012-02-19 00:19:53
這可能是問題的根源:http://stackoverflow.com/questions/4857730/how-to-fix-hsql-datasource-txm-where-identity-always-return-0 – 2012-02-19 18:29:55