-1

我有一个名为 article 的表格,其中包含按以下顺序排列的以下列:

文章表:

1)creator_id 2)article_id(pk) 3).....

article_page 表:

1)article_page_id(pk) 2)article_page_number 3)article_id(fk --> 文章表)。

我使用单向或双向休眠注释映射,当我尝试保存具有许多 article_page 对象调用 save() 的文章对象时会出现以下问题:

文章被插入到表 article 中,并生成了一个新的 article_id。但是当试图在 article_page 表中插入行时,hibernate 试图使用表 article 中的 creator_id 而不是 article_id。

我已经仔细检查了我的 java 注释类,我似乎没有发现任何错误。我想知道 creator_id 是否在 PostgreSQL 文章表的位置 1 导致这种奇怪的行为。或者是别的什么?

4

1 回答 1

0

好的,似乎我的表格文章的所有列都被认为是自动生成的,因此它们都在 getGeneratedKeys() 调用中返回。列在表 article 中的存在顺序是您可以从 GeneratedKeys 中检索它们的顺序。在我们的例子中,我的主键是通过 getInt(2) 返回的,因为它是第二个。

Hibernate 3.5 似乎将第一列作为主键检索。

于 2012-07-20T08:32:18.123 回答