Я строю веб-приложение с общей базой лиц для всех клиентовДобавление динамических атрибутов для JPA сущностей
Теперь некоторые клиенты нуждается в дополнительных полей, но я не хочу, чтобы добавить все. Я думал о чем-то вроде этого:
@Embeddable
public class AdditionalDetails {
private String label;
private String text;
public AdditionalDetails() {}
// autogenerated getters and setters, hashCode(), equals()
}
@Entity
public class BusinessObject {
@Id
@Column(name = "string_id")
private long id;
@ElementCollection(fetch=FetchType.EAGER)
@MapKey(name = "language")
@CollectionTable(schema = "label", name = "multilingual_string_map",
joinColumns = @JoinColumn(name = "string_id"))
private Map<String, AdditionalDetails> map = new HashMap<String, AdditionalDetails>();
public BusinessObject() {}
// autogenerated getters and setters, hashCode(), equals()
}
Нет проблема есть кто я бы настроить, какие свойства добавляются по BusinessObject?
это хорошая идея. Но я хотел получить общее решение, где я установил параметр конфигурации или что-то подобное, чтобы построить карту. – hypery2k
. Что вы предлагаете с JPA не представляется возможным. Это связано с тем, что поля и методы должны отображаться на ресурс базы данных. То, что вы ищете, - это одно поле или аксессуар, который при заданном параметре динамически определяет его отображение. Это не то, как JPA была задумана. – cmd
В целом, мой предложенный ответ, скорее всего, лучше всего подходит, чтобы приблизиться к поведению, которое вы хотите. Пожалуйста, подумайте о принятии, если это поможет. Большое спасибо и удачи! – cmd