DTO 변환 질문입니다.
353
작성한 질문수 1
User라는 entity에서 AuthorityDTO라는 클래스로 변환을 하려고 하는 데 에러가 나서 원인을 혹시 아시나요?
bean, fields, constructor 전부 같은 에러가 나네요.
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [com.illunex.invest.user.persistence.entity.User] to type [com.illunex.invest.api.core.user.dto.AuthorityDTO]
public List<AuthorityDTO> findByCompanyIdx(Long companyIdx) {
QUser user = QUser.user;
return queryFactory.select(Projections.bean(AuthorityDTO.class
, user.id
, user.username
, user.name
, user.authorities
, user.profileImg
, user.companyIdx))
.from(user)
.where(user.companyIdx.eq(companyIdx))
.fetch();
}
@NoArgsConstructor
@AllArgsConstructor
@Getter @Setter
public class AuthorityDTO {
private Long id;
private String username;
private String name;
//private Set<RoleDTO> authorities = new HashSet<>();
private String profileImg;
private Long companyIdx;
}
@Entity
@Table(name = "user"
, indexes = {
@Index(name = "IDX_USERNAME", unique = true, columnList = "username"),
@Index(name = "IDX_COMPANY_IDX", columnList = "companyIdx")
})
@NoArgsConstructor
@AllArgsConstructor
@Getter @Setter
@Builder
public class User implements UserInterface {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false, updatable = false)
private Long id;
@Column(nullable = false, unique = true)
private String username;
@Column(nullable = false)
private String password;
private String name;
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name = "user_role",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "role_id"))
private Set<Role> authorities = new HashSet<>();
private String profileImg;
private String vender;
private Long companyIdx;
private Boolean certification = false;
private String token;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.DETACH, mappedBy = "user")
private List<Signature> signatures = new ArrayList<>();
public static User createUser(String username, String password, String name, String vender, String token, Long companyIdx) {
return getUserBuilder(username, password, name, vender, token, companyIdx)
.authorities(Role.initRoles())
.build();
}
public static User createCompanyAdminUser(String username, String password, String name, String vender, String token, Long companyIdx) {
return getUserBuilder(username, password, name, vender, token, companyIdx)
.authorities(Role.companyAdminRoles())
.build();
}
private static UserBuilder getUserBuilder(String username, String password, String name, String vender, String token, Long companyIdx) {
return User.builder()
.username(username)
.password(encodePassword(password))
.name(name)
.vender(vender)
.certification(false)
.token(token)
.companyIdx(companyIdx);
}
public static String encodePassword(String password) {
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
return encoder.encode(password);
}
public static boolean matchPassword(String prePassword, String inputPassword) {
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
return encoder.matches(inputPassword, prePassword);
}
@Override
public Collection<Role> getAuthorities() {
return authorities;
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
}
답변 1
0
안녕하세요. 형진님
Querydsl을 사용했는데, 오류는 Spring오류가 나서요. 좀 봐야할 것 같아요.
똑같은 오류를 재현할 수 있는 테스트를 작성해서 전체 프로젝트를 압축해서 올려주세요.
감사합니다.
SpringBoot 4.X에서의 Querydsl 설정
0
87
2
querydsl 오픈소스에 대한 질문
0
72
1
예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?
0
109
1
Querydsl 6.X버전에 대해서 어떻게 생각하시나요?
0
317
2
여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요
1
70
1
fetchResults()는 더이상 권장되지 않는다는데 맞나요?
0
160
1
querydsl sum() 메서드 없어요.
0
158
2
build 디렉터리 생성
0
136
2
자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?
0
114
2
현재 Querydsl에서 from절 서브쿼리를 지원하나요?
0
90
1
오타 제보 드립니다.
0
71
2
벌크 연산과 flush, clear
0
76
1
Run As Intellij 로 변경시 Q타입 import 불가
0
87
1
QHello import하기 문제 발생
0
147
2
등록된 함수 보는법(H2Dialect) 질문
0
68
2
5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의
1
195
2
[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??
1
200
1
querydsl 설정 문제
0
222
2
quey dsl 설정부분
0
158
2
count 쿼리 관련 질문입니다!
0
75
1
stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.
0
89
1
답변부탁드리겠습니다.
0
89
2
(OrderSpecifier)관련 내용 어디있을가요
0
65
1
중급문법 벌크연산에서
0
81
2





