Как иметь 2 набора того же типа в JPA?

Вам необходимо использовать .insertAdjacentHTML () вместо .appendChild (contents); , потому что вы пытаетесь добавить строку html, а не узел html. [115 ]

var data = [{
    "id": "1",
    "name": "Apple"
},{
    "id": "2",
    "name": "Banana"
}];

var section = document.createElement("ul");
section.setAttribute('class', "col-12 nav nav-tabs nav-fill");
var template = document.querySelector('#lists').innerHTML;
var contents = '';

for(var i = 0; i < data.length; i++){
    contents += template.replace(/\{\{name\}\}/, data[i].name);
}

section.insertAdjacentHTML('beforeend', contents);
document.getElementById('test').appendChild(section);

15
задан Idolon 18 October 2011 в 15:28
поделиться

4 ответа

Это одна из многих ошибок Hibernate ( HHH-3410 , если быть точным).

Мне удалось исправить это, добавив аннотации @JoinTable к отношениям @OneToMany , каждая из которых имеет собственное имя таблицы.

В вашем случае это будет выглядеть так:

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name="entity_descriptioncomments")
@IndexColumn(base = 1, name = "dnr")
private List<Comment> descriptionComments = new ArrayList<Comment>();

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name="entity_postmortemcomments")
@IndexColumn(base = 1, name = "pmnr")
private List<Comment> postMortemComments = new ArrayList<Comment>();

Примечание : вы также должны добавить аннотацию @IndexColumn (из-за другой проблемы с гибернацией с несколькими пакетами EAGER: HHH -1718 / EJB-346 ).

13
ответ дан 1 December 2019 в 03:52
поделиться

Существует дефект с текущим отображением от модели данных / точка зрения модели предметной области: Вы на самом деле имеете единственный отношения @OneToMany между Запись и Комментарий . И объект Комментария должен иметь еще один атрибут, названный тип , который принимает 2 значения: ' описание ' или' вскрытие '.

, Чтобы быть встроенными с Вашей текущей реализацией Запись объект можно хотеть рассмотреть разрушение объект Комментария в 2 различных объекта (возможно использующий функции наследования JPA) и использующий аннотация @JoinTable в [1 110] Запись .

2
ответ дан 1 December 2019 в 03:52
поделиться

Для хранения 2 наборов как этот в JPA с DataNucleus ( http://www.datanucleus.org ), Вы сделали бы точно, поскольку Вы сделали. У Вас нет никакого @JoinTable аннотация следовательно, FK должен быть помещен в Comment для каждого из наборов. Если Вы на самом деле имеете @JoinTable где-нибудь (или эквивалент XML), тогда определение имен соответствующих объединяющих таблиц (один для каждого набора) работало бы также (таким образом, у них есть своя собственная объединяющая таблица). Наличие общей объединяющей таблицы между 2 наборами возможно в DataNucleus также, но это не стандартный JPA, вместо этого расширение поставщика.

, Как это отображается для Спящего режима, я понятия не имею, но тогда это - JPA, так должно быть последовательным с тех пор в этом суть наличия спецификации;-)

4
ответ дан 1 December 2019 в 03:52
поделиться

Если все, о чем Вы заботитесь, заказывает, как насчет того, чтобы настроить два определения столбца индекса, чтобы иметь то же имя?

0
ответ дан 1 December 2019 в 03:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: