Почему установщик ролей принимает List вместо Set в моей сущности JPA с перечислением?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему установщик ролей принимает List вместо Set в моей сущности JPA с перечислением?

Сообщение Anonymous »

Я использую Spring Data JPA с Hibernate и Lombok для своей сущности «Пользователь», где поле ролей определяется как Set. Однако Lombok генерирует метод установки, который принимает List вместо Set для поля роли.
Вот код для роли enum и сущность User:
public enum Role {
ADMIN, DRIVER, RIDER
}
< /code>
@Entity
@Getter
@Setter
@Table(name = "app_user")
public class User {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String name;

@Column(unique = true)
private String email;

private String password;

@ElementCollection(fetch = FetchType.LAZY)
@Enumerated(EnumType.STRING)
private Set roles;
}
< /code>
Problem:
Despite the roles field being defined as a Set, Lombok is generating a setter method that accepts List instead of Set. The generated setter method signature looks like this:
public void setRoles(List roles);
public List getRoles();
< /code>
What I’ve tried:
  • I have declared the roles field as a Set.
  • I am using the latest version of Lombok and Spring Boot.
  • The Role enum is of type String.
Question:
Why does Lombok generate a setter method that accepts List instead of Set for the roles field, even though the field is a Set? How can I fix this and ensure that the setter accepts a Set?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-my-jpa
Ответить

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

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

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

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

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