Как выполнить запрос на вставку объекта с составным ключом, используя синтаксис Lombok builderJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Как выполнить запрос на вставку объекта с составным ключом, используя синтаксис Lombok builder

Сообщение Гость »


Я использую Spring Boot версии 3.1.7 и пытаюсь выполнить запрос на вставку в базу данных, в которой есть таблица, которую я проанализировал, чтобы создать класс сущности, она состоит из трех первичных ключей и поэтому является первичным ключевой класс был сгенерирован автоматически.

Моя проблема заключается в том, что всякий раз, когда я пытаюсь сохранить созданный мной объект (используя синтаксис Lombok builder), я получаю эту ошибку

org.springframework.dao.InvalidDataAccessApiUsageException: предоставленный идентификатор имеет неверный тип: сущность «com.sageapservice.entity.mssql.Apibs» имеет тип идентификатора «класс com.sageapservice.entity.mssql.ApibsPK», но предоставленный идентификатор имеет тип 'класс java.lang.Integer'

(Имя класса в Apibs и класс первичного ключа — ApibsPK)

Я пытался просто передать значения функциям, как обычно, но получил ошибку, выделенную выше. Я также попытался создать объект класса PK и передать его в качестве идентификатора объекта, но поскольку функция построения не принимает поля, которые еще не принадлежат классу объекта.

Мне даже не удалось запустить программу.

Вот часть моего класса сущности

@Entity @AllArgsConstructor @Builder @NoArgsConstructor @IdClass(ApibsPK.класс) публичный класс Apibs { @Идентификатор @Column(name = «CNTBTCH», значение null = false, точность = 0) частный int cntbtch; @Идентификатор @Column(name = «CNTITEM», значение null = false, точность = 0) частный int cntitem; @Идентификатор @Column(name = «CNTPAYM», значение null = false, точность = 0) частный int cntpaym; @Базовый @Column(name = «AUDTDATE», значение null = false, точность = 0) частная дата аудита; @Базовый @Column(name = «AUDTTIME», значение null = false, точность = 0) частное время проверки; @Базовый @Column(name = «AUDTUSER», значение null = false, длина = 8) частная строка audtuser; @Базовый @Column(name = «AUDTORG», значение null = false, длина = 6) частный Стринг-аудторг; @Базовый @Column(name = «DATEDUE», значение null = false, точность = 0) частный с истекшим сроком; // ... } Это в моем классе ПК
@NoArgsConstructor @AllArgsConstructor @Builder публичный класс ApibsPK реализует Serializable { @Column(name = «CNTBTCH», значение null = false, точность = 0) @Идентификатор частный int cntbtch; @Column(name = «CNTITEM», значение null = false, точность = 0) @Идентификатор частный int cntitem; @Column(name = «CNTPAYM», значение null = false, точность = 0) @Идентификатор частный int cntpaym; // ... }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»