Идентификаторы этого класса необходимо назначить вручную перед вызовом сохранения строкового идентификатора.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Идентификаторы этого класса необходимо назначить вручную перед вызовом сохранения строкового идентификатора.

Сообщение Anonymous »


Уже прочитал много вопросов по одной и той же проблеме, но так и не смог решить эту проблему.

Мне нужен первичный ключ String в моей базе данных.

import javax.persistence.Entity; импортировать javax.persistence.Id; @Сущность общественный класс MyClass { @Идентификатор частная строка myId; частное имя строки; // геттеры и сеттеры.. } Проблема в том, что если я использую тип String в поле с аннотацией @Id, Hibernate выдает исключение при попытке сохранить объект.

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

Обходные пути, которые я нашел:
[*]Добавить аннотацию @GeneratedValue в поле – не получилось [*]Измените тип поля на Целое — для меня это невозможно [*]Добавить конструктор, который получает myId в качестве параметра public MyClass(String myId){ ... — не получилось [*]Использовать UUID — я не могу, потому что этот идентификатор задается полем, которое приходит с запросом POST.
Ни один из этих обходных путей мне не помог.

ОБНОВЛЕНИЕ

Я использую Spring Boot и Spring Data JPA.

Как вставить:

У меня есть аннотированный метод @PostMapping, который обрабатывает запрос POST и вызывает службу, которая выполняет некоторую бизнес-логику, и вызывает мой репозиторий для сохранения.

Запрос, который я отправляю:

{ "myId": "мойId", "имя": "моеИмя" } MyService.java
import org.springframework.beans.factory.annotation.Autowired; импортировать org.springframework.stereotype.Service; @Услуга общественный класс MyService { @Autowired частный MyRepository myRepository; public MyClass save (MyClass myClass) { вернуть myRepository.save(myClass); // save() должен сохранить мой объект в базе данных } }
Ответить

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

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

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

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

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