Что я хочу сделать, это изменить свой идентификатор с плавающей запятой на строку.
У меня есть этот объект, который представляет группу:
@Entity
@Table(name="group")
public class GroupEntity {
@Id
private String name;
@ManyToMany
private List<UserEntity> users;
И в моем файле начальной загрузки у меня есть это:
Password p = new Password("test");
UserEntity user = new UserEntity("pedro", p);
List<UserEntity> users = new ArrayList<UserEntity>();
List<GroupEntity> groupEntities=new ArrayList<GroupEntity>();
users.add(user);
GroupEntity r1 = new GroupEntity("Integrations");
groupEntities.add(r1);
user.getGroups().add(r1); //this user has a group
r1.setUsers(users); // this group has a user
Мой класс UserEntity выглядит так:
@Entity
@Table(name="user")
public class UserEntity {
@Id
@GeneratedValue
private Long id;
private String name;
При этом моя программа работает без проблем, вы можете видеть, что группы сохраняются с идентификатором, являющимся их именем:
Но когда я изменю класс UserEntity с этого на этот:
@Entity
@Table(name="user")
public class UserEntity {
@Id
private String name;
Появляется эта ошибка:
org.springframework.beans.factory.BeanCreationException: ошибка
создание компонента с именем bootstrap: сбой вызова метода init;
вложенное исключение
org.springframework.orm.jpa.JpaObjectRetrievalFailureException: невозможно
найти com.alert.interservices.uaa.RoleEntity с идентификаторами интеграции;
Вложенное исключение - javax.persistence.EntityNotFoundException: невозможно
найти com.alert.interservices.uaa.RoleEntity с интеграцией идентификаторов
Я думаю, что проблема с идентификатором, но не знаю, как ее решить.
Обновление 1-application.properties:
spring.datasource.url=jdbc:h2:file:~/test2;DB_CLOSE_ON_EXIT=FALSE;AUTO_RECONNECT=TRUE
spring.datasource.username=admin
spring.datasource.password=password
spring.h2.console.enabled=true