ORM: OneToOne, отображающийся на Не Объединяющий столбец Первичного ключа - Книга и Материально-технические ресурсы, отображенные ISBN

Добавить

lintOptions {
        disable 'InvalidPackage'
        checkReleaseBuilds false
}

в android/app/build.gradle

7
задан Sathish 23 March 2009 в 18:22
поделиться

4 ответа

Я сомневаюсь, что это имеет какое-либо отношение к проблеме, но я думал, что подниму ее так или иначе только, чтобы гарантировать, что это не глюк, который был пропущен:

Обратите внимание, что при использовании referencedColumnName к не столбцу первичного ключа, связанный класс должен быть сериализуемым.

Ссылка: [http://docs.jboss.org/ejb3/app-server/HibernateAnnotations/reference/en/html_single/index.html] [1]

Я знаю, что Вы сказали, что ЛЕВОЕ ВНЕШНЕЕ ОБЪЕДИНЕНИЕ сгенерировано, но я думал, что выборка по умолчанию была ЛЕНИВА, если это не было указано. Возможно, explicilty определение режима выборки может привести к различным результатам.

Наконец при использовании запроса HQL возможно, отправление этого с любыми другими классами объекта поможет общественной справке решить вопрос.

1
ответ дан 7 December 2019 в 12:25
поделиться

просто предположение: действительно называет =, 'ISBN' должен быть тем же случаем как поле в Материально-технических ресурсах?

0
ответ дан 7 December 2019 в 12:25
поделиться

Ваша схема базы данных не имеет смысла, судя по тому, что вы здесь показали. Связь между книгой и инвентарем должна быть один ко многим - предположительно, одна и та же книга находится в нескольких инвентаризациях, а это означает, что вы не можете связать книги и инвентарь только с isbn. Поскольку isbn не уникален для инвентаря, у вас будет несколько строк в инвентаре с одним и тем же isbn, но с разными идентификаторами цепочки - какая строка является правильной для данной книги / isbn? У книги должен быть внешний ключ к inventory.id, а не inventory.isbn.

1
ответ дан 7 December 2019 в 12:25
поделиться

Вы должны назвать свою ссылку соединения как-нибудь иначе. isbn уже является столбцом. Попробуйте это:

@OneToOne(optional = true)
@JoinColumn(name = "inventory", referencedColumnName = "isbn",insertable = false, updatable = false)
Inventory inventory;
3
ответ дан 7 December 2019 в 12:25
поделиться
Другие вопросы по тегам:

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