Как создать сущность JPA для таблицы, в которой нет столбца первичного ключа или уникального ключа

#java #hibernate #jpa #spring-data-jpa #entity

Вопрос:

l имейте таблицу без Первичного ключа или Уникального ключевого столбца. Мне нужно манипулировать этой таблицей из приложения Spring с помощью JPA и Hibernate.

Пока я пытался сопоставить сущность этой таблицы, это не удалось, потому что нет @Id сопоставления.

Я попытался создать составной идентификатор из всех свойств сущности, чтобы обеспечить уникальность, но в этом случае сущность вернула неизменяемый объект.

Мне нужно манипулировать некоторыми переменными этой сущности. Что мне делать? Изменение таблицы путем добавления уникального столбца принесет мне новые проблемы. Есть ли способ не изменять таблицу?

Ответ №1:

Предположим, вы хотели изменить эти записи с помощью SQL. Как бы вы узнали, какую строку обновить или удалить, если у вас нет уникального столбца?

Если вы не создадите уникальную колонку, вы ничего не сможете с этим поделать.

Ответ №2:

Должен существовать уникальный способ идентификации ваших записей. Иногда у вас есть несколько столбцов. В этом случае вы используете составленный первичный ключ. В JPA вы можете реализовать составленный первичный ключ двумя способами: @EmbeddedId или @IdClass.