我有一个名为article的表,其中包含以下列中的以下列:
文章表:
1)creator_id 2)article_id的(PK) 3).....
article_page table:
1)article_page_id(PK) 2)article_page_number 3)article_id(fk - >文章表)。
我正在使用单向或双向hibernate注释映射,当我试图保存一个包含许多调用save()的article_page对象的文章对象时会出现以下问题:
该文章已插入表格文章中,并生成了新的article_id。但是当试图在article_page表中插入行时,hibernate试图使用表文章中的creator_id而不是article_id。
我已经仔细检查了我的java注释类,我似乎没有发现任何错误。我想知道creator_id是否在PostgreSQL文章表的第1位导致这种奇怪的行为。还是别的什么?
答案 0 :(得分:0)
好吧,似乎我的表文章的所有列都被认为是自动生成的,因此它们都会在getGeneratedKeys()调用中返回。表文章中列的存在顺序是您可以从GeneratedKeys中检索它们的顺序。在我们的例子中,我的主键是通过getInt(2)返回的,因为它是第二个按顺序。
Hibernate 3.5,因为它似乎在第一列中检索为主键。