OnetoOne Hibernate Mapping

时间:2012-07-27 17:14:17

标签: java hibernate one-to-one

在One To One映射中,我编写了以下代码行。

@GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name="property", value= "post"))
@Id
@GeneratedValue(generator = "generator")
public int getContent_id() {
    return content_id;
}

@Parameter(name =“property”,value =“post”)的意义何在?如果我不写那行,我就会收到错误

调用init方法失败;嵌套异常是org.hibernate.MappingException:无法实例化id生成器[entity-name = in.codejava.personal.model.Content]

修改

当我将value =“post”更改为value =“post123”等其他任何内容时,它都有效。但是当我完全删除它时,它不起作用。部分代码http://pastebin.com/CjEpqtXV

1 个答案:

答案 0 :(得分:2)

它允许告诉生成器必须从哪个属性中提取ID(在本例中为“post”)。一个实体可以有几个OnetoOne关联。您需要告诉它哪一个包含您实体的ID。

请注意,此生成器可以由包含ID:@MapsId的OneToOne关联上的标准JPA注释替换。 Hibernate文档recommends its usage而不是外部生成器。