2
我有一個實體叫做Change,我需要在數據庫中進行日誌更改,比如插入,更新或刪除行。Hibernate @Any註解用法
因此,我的更改表包含一些數據,現在我想添加外鍵記錄另一個表中的更改,但我有不同的表。例如,我有天氣表,組表,...所以我做了一些搜索,我發現了一些關於@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,NM)。當我知道我所引用的表時,我可以使用它們,但我可以參考這裏的多個表(如GROUP,WEATHER等),並且需要標識表名和記錄。所以我認爲我必須使用多態關係。它與此類似:http://www.jroller.com/eyallupu/entry/hibernate_the_any_annotation。但我不知道如何設置或獲取對象項,我怎樣才能調用change.setRecord(「int id,String name」)... – user2275785