Идентификаторы этого класса необходимо назначить вручную перед вызовом сохранения строкового идентификатора. ⇐ JAVA
-
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() должен сохранить мой объект в базе данных } }
Уже прочитал много вопросов по одной и той же проблеме, но так и не смог решить эту проблему.
Мне нужен первичный ключ 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() должен сохранить мой объект в базе данных } }
Мобильная версия