Hibernate: невозможно найти соответствующий конструктор в классе - PullRequest
0 голосов
/ 28 мая 2020

Я хочу получить данные с помощью DTO Projection, используя sprind data jpa, но, к сожалению, когда я вызываю метод, произошла ошибка:

    [2020-05-28 21:02:03] Unable to locate appropriate constructor on class [com.burgerbuilder.backend.DTO.Response.UserResponse]. Expected arguments are: java.util.UUID, java.lang.String , java.lang.String , java.lang.String , java.util.Collection
[select new com.burgerbuilder.backend.DTO.Response.UserResponse(u.id,u.email,u.name,u.lastName,u.authorities) from com.burgerbuilder.backend.Model.User u where u.id=:id]

мой репозиторий:

@Repository
public interface UserRepository  extends JpaRepository<User, UUID> {
@Query("select new com.burgerbuilder.backend.DTO.Response.UserResponse(u.id,u.email,u.name,u.lastName,u.authorities) from User u where u.id=:id")
Optional<UserResponse> findUserById(@Param("id") String id);}

Пользователь class:

@Entity
public class User implements UserDetails {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Type(type=”uuid-char”)
private UUID id;
@NotNull
private String email;
@NotNull
private String password;
private String name;
private String lastName;
private String phoneNumber;
private String emailVerificationToken;
private boolean isEmailVerified=false;
private boolean isPhoneNumberVerified=false;

@OneToMany(mappedBy = “user”,cascade = CascadeType.ALL)
private List<Authority> authorities=new ArrayList();

DTO Class:

 public class UserResponse {
    private String userId;
    private String email;
    private String name;
    private String lastName;
    private List<Authority> authorities=new ArrayList<>();

    public UserResponse(UUID userId, String email, String name, String lastName, List<Authority> authorities) {
        this.userId = userId.toString();
        this.email = email;
        this.name = name;
        this.lastName = lastName;
        this.authorities=authorities;
    }
}

может кто-нибудь мне помочь, пожалуйста?

...