2

行の挿入、更新、削除など、データベースの変更をログに記録する必要がある Change というエンティティが 1 つあります。

したがって、変更テーブルにはいくつかのデータが含まれており、別のテーブルに変更を記録するために外部キーを追加したいと考えていますが、別のテーブルがあります。たとえば、Weather テーブル、Group テーブルなどがあります。検索を行ったところ、@Any アノテーションについて少しわかりました。そこで、Change エンティティにいくつかの列を追加しました。

@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 やクラス名など) を挿入するにはどうすればよいですか? また、それらを取得するにはどうすればよいですか?

4

1 に答える 1