我想使用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