0

在一对一映射中,我编写了以下代码行。

@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

4

1 回答 1

2

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

请注意,此生成器可以替换为 OneToOne 关联上的标准 JPA 注释,其中包含 ID:@MapsId。Hibernate 文档推荐使用它而不是外部生成器。

于 2012-07-27T17:25:22.417 回答