2012-07-19 47 views
-1

我有一个名为物品与在下面的下列顺序的列表:休眠3.5 @OneToMany批注和PostgreSQL的

文章表:

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_id。但是,当试图在article_page表中插入行时,hibernate正尝试使用表文章中的creator_id而不是article_id。

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

+1

订单不重要,您的注释必须存在问题 - 您可以发布一些代码吗? – MattR 2012-07-19 13:46:26

+0

我尝试了更多使用纯JDBC而不是休眠。 getGeneratedKeys()调用返回一个resultSet,其getInt(1)内容不是我的主键列(article_id)而是列creator_id。听起来像一个postgresql问题给我? – 2012-07-20 08:22:07

回答

0

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

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