我設計了一個表(在postgres中),其中'id'列是通過它的SEQUENCE實體自動增加的。 但是,當我開始使用Hibernate我遇到的問題....由於創建插入語句,它使用如下語句java hibernate在插入時跳過插入'id'
INSERT INTO MYTABLE(ID,姓名)值(0, 'blablabla')
...
但我想它使somethink這樣的:
INSERT INTO MYTABLE(名)值( 'blablabla')
... Postgres的具有自動生成的ID(至少,當我跑這樣的腳本withing SQL編輯器,它的工作)
我相信它可以配置,但我不知道如何...
這裏是我的我的.hbm.xml的一部分:
<hibernate-mapping>
<class name="com.cse.database.bean.Category" table="category">
<id name="id" type="int">
<column name="id" />
<generator class="assigned" />
</id>
<property name="name" type="string">
<column name="name" length="100" not-null="true" unique="true" />
</property>
</class>
</hibernate-mapping>
重要的是它的PostgreSQL。當你指定一個''時,你告訴Hibernate如何創建ID。 'assign'意味着你的應用程序正在做它(你不想要的)。 'identity'意味着數據庫爲你做了,它*是*你想要的,但是http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration- ID沒有列出PostgreSQL作爲支持。也許'序列'與PostgreSQL一起工作?你也許只能使用'本地',並且它會自動工作... –
2012-01-31 23:08:05
似乎設置發電機'idenitity'解決了我的問題:)你可以發佈你的消息作爲答案,我會接受它 – davs 2012-01-31 23:34:44
完成。不確定'身份'是否適用於PostgreSQL,因爲Hibernate文檔沒有列出該數據庫。 – 2012-01-31 23:38:46