2013-10-03 3 views
2

У меня есть один объект под названием «Изменить», где мне нужны изменения в журнале в базе данных, такие как вставка, обновление или удаление строк.Hibernate @ Любое использование аннотации

Так что моя таблица изменений содержит некоторые данные, и теперь я хотел бы добавить внешний ключ для записи изменений в другую таблицу, но у меня разные таблицы. Например, у меня есть таблица «Погода», «Групповой стол» ... Итак, я сделал несколько поисков, и я немного нашел о @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 и имя класса), и как я могу получить их?

ответ

0

Пожалуйста, пройти через этот Link

Вы должны заботиться о ваших отношениях сущностей (1-1 или 1-М или ММ)

+0

Я боюсь, что я должен использовать различные отношения, чем (1-1, 1-М, Нью-Мексико). Я могу использовать их, когда я знаю таблицу, к которой я обращаюсь, но я могу ссылаться на несколько таблиц здесь (например, GROUP, WEATHER и т. Д.), И мне нужно определить имя таблицы и запись в ней. Поэтому я считаю, что должен использовать полиморфные отношения. Это похоже на это: http://www.jroller.com/eyallupu/entry/hibernate_the_any_annotation. Но я не знаю, как установить или получить объект Object, как я могу вызвать change.setRecord («int id, String name») ... – user2275785

Смежные вопросы