Java Hibernate@Any注释用法

Java Hibernate@Any注释用法,java,hibernate,annotations,polymorphism,any,Java,Hibernate,Annotations,Polymorphism,Any,我有一个名为Change的实体,需要在数据库中记录更改,如插入、更新或删除行 所以我的变更表包含一些数据,现在我想添加外键来记录另一个表中的变更,但我有不同的表。例如,我有天气表,分组表,。。。所以我做了一些搜索,找到了一些关于@Any注释的信息。因此,我在我的变更实体中添加了一些列: @Entity @Table(name = "CHANGE") public class Change { @Id @GeneratedValue(strategy = GenerationTyp

我有一个名为Change的实体,需要在数据库中记录更改,如插入、更新或删除行

所以我的变更表包含一些数据,现在我想添加外键来记录另一个表中的变更,但我有不同的表。例如,我有天气表,分组表,。。。所以我做了一些搜索,找到了一些关于@Any注释的信息。因此,我在我的变更实体中添加了一些列:

@Entity
@Table(name = "CHANGE")
public class Change {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "CHANGE_ID")
    private int changeId;
...
@Any(metaColumn = @Column(name = "RECORD_TABLE"))
@AnyMetaDef(idType = "int", metaType = "string",
metaValues = {
@MetaValue(targetEntity = Weather.class, value = "WEATHER"),
@MetaValue(targetEntity = Group.class, value = "GROUP"),
...
})
@JoinColumn(name="recordID")
private Object record;

@ManyToOne
@JoinColumn(name = "USER_ID")
private User user;

public Object getRecord() {
    return record;
}
public void setRecord(Object record) {
    this.record = record;
}
...
我愚蠢的问题是: 我如何将数据插入数据库(如外来ID和类名)以及如何检索它们?

请仔细阅读


您应该关心您的实体关系(1-1或1-M或M-M)

恐怕我必须使用不同于(1-1,1-M,N-M)的关系。当我知道要引用的表时,我可以使用这些表,但我可以在这里引用多个表(如组、天气等),我需要标识表名和其中的记录。所以我认为我必须使用多态关系。与此类似:。但我不知道如何设置或获取对象项,如何调用change.setRecord(“int-id,String-name”)。。。