JPA: помогите пониманию “выборка соединения”

Преобразуйте JSON в массив JavaScript с помощью JSON.parse . Затем проверьте свойство длины.

var json = `[
  {"foo": 1},
  {"foo": 1},
  {"foo": 1},
  {"foo": 1}
]`;

var array = JSON.parse(json);

var length = array.length;

document.body.appendChild(document.createTextNode(length));

13
задан Tong Wang 26 February 2009 в 22:57
поделиться

3 ответа

Сгенерированный sql посмотрел бы что-то как:

select * from Business b 
left outer join campaigns c on c.business_id = b.id
left join promotions  p on p.campaign_id = c.id
where b.id=:id

Внутренне Будьте в спящем режиме, будет иметь только один Бизнес-экземпляр, однако дубликаты будут сохранены в наборе результатов. Это - ожидаемое поведение. Поведение, которого Вы требуете, может быть достигнуто или при помощи ОТЛИЧНОГО пункта, или при помощи LinkedHashSet для фильтрации результатов:

Collection result = new LinkedHashSet(query.getResultList());

который возвратит только уникальные результаты, сохраняя порядок вставки.

"org.hibernate. HibernateException: не может одновременно выбрать несколько сумок", происходит каждый раз, когда Вы пытаетесь нетерпеливо выбрать больше чем один набор заказанным способом (и возможно дублированные объекты). Это действительно сортирует, имеют смысл, если Вы рассматриваете сгенерированный SQL. Будьте в спящем режиме не имеет никакого способа знать, был ли дублированный объект вызван соединением или фактическими дублирующимися данными в дочерней таблице. Посмотрите на это для хорошего объяснения.

20
ответ дан 1 December 2019 в 21:38
поделиться
  1. Я принимаю, используете ли Вы Список, в спящем режиме, предполагает, что порядок важен, и он выведет порядок элементов от возвращенных строк, но если Вы присоединяетесь к nother таблице, в спящем режиме, получит каждую кампанию многократно, которая путает, в спящем режиме. Снова, я просто принимаю это

  2. Это - ожидаемое Использование поведения RootEntityResultTransformer для получения единственного корневого объекта: http://www.hibernate.org/hib_docs/v3/api/org/hibernate/transform/RootEntityResultTransformer.html

1
ответ дан 1 December 2019 в 21:38
поделиться
  1. Список может иметь избыточные элементы из-за декартова произведения, и люди не знали об этом, таким образом, быть в спящем режиме парни начали бросать эту ошибку вынудить людей использовать Набор вместо Списка для предотвращения этой проблемы. Источник 1
3
ответ дан 1 December 2019 в 21:38
поделиться
Другие вопросы по тегам:

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