mutableListOf
157
작성자 없음
작성한 질문수 0
강의를 들으면서 코틀린 문법도 같이 병행하면서 듣고있는데 이부분 질문을 하고 싶습니다!
mutableListOf 로 감싸줘서 넣어져야지 코드가 오류 없이 되는지 궁금합니다.
jpa 특성상 그런건가용?
답변 1
0
안녕하세요 정보근입니다:)
말씀하신 부분은 JPA 특성이라기보단 자바/코틀린 문법입니다.
saveAll() 메소드의 맥북 기준 cmd+B를 누르시면,
ListCrudRepository 인터페이스를 확인하실 수 있으실텐데요.
아래와 같이 파라미터로 Iterable을 받을 수 있게 되어있습니다.
즉 Iterable의 구현체들만 파라미터로 들어갈 수 있습니다.
<S extends T> List<S> saveAll(Iterable<S> entities);
원하시는 것은 파라미터로 넣기 위해 리스트 등 Iterable의 구현체를 따로 사용하지 않고,
각 요소 하나하나를 파라미터로 넣고 싶어하시는 것 같은데요.
이럴 경우 메소드 정의를 파라미터 1개, 파라미터 2개, 이런 식으로 전부 정의하면 사용성이 좋지 않겠죠.
그 때 사용하는 게 가변인자입니다.
아래 코드처럼 vararg 키워드를 사용하는 파라미터를 받는 saveAll() 메소드를 새로 정의해줬습니다.
interface AchievementRepository : JpaRepository<Achievement, Long> {
fun saveAll(vararg achievements: Achievement )
// select * from achievement where is_active = :isActive
fun findAllByIsActive(isActive: Boolean): List<Achievement>
}위와 같이 새 메소드를 정의해줄 경우 아래 코드처럼 리스트를 받을 수도 있고, 개별 인자를 여러 개 받을 수도 있습니다.
achievementRepository.saveAll(mutableListOf(achievement1, achievement2))
achievementRepository.saveAll(achievement1, achievement2)위의 메소드에서 cmd+B를 누르시면 ListCrudRepository로, 아래 메소드에서 누르시면 저희가 정의한 AchievementRepository로 이동하는 것을 확인하실 수 있으실 거에요.
이렇게 할 경우 코틀린 문법상 문제는 없습니다.
하지만 실행을 시켜보시면 No property 'saveAll' found for type 'Achievement'와 같이 오류가 뜹니다.
스프링 데이터 JPA에서 saveAll이 가변인자 방식으로 인자를 받는 것을 지원하지 않는 것으로 보이네요.
좀 더 자세한 내용은 '가변인자'를 키워드로 검색해보시면 좋을 것 같습니다.
감사합니다.
Windows 환경에서 작업중
0
87
1
강의 자료 다운로드에 관해
0
163
2
도커 파일을 빌드 시킬때 오류가 발생하는데 무슨 에러인가요..
0
177
2
Admin 뷰 템플릿 유료화 여부 및 변경 사항 문의드립니다.
0
235
2
테스트 코드 작성 중 AssertionError 발생
0
276
4
메모리 크기
0
135
2
클래스 생성 강의 수강 중 오류 발생
0
127
1
리액트 연결
0
158
2
Docker Compose 배포 시 Jasypt 암호화된 속성 복호화 문제 해결 방법
1
293
2
도커로 크롬에서 프로그램 열기
0
304
2
DBeaver 연결부터 도커로프로젝트 빌드까지 안됩니다.
0
325
2
뷰 개발 파일 없음
0
152
2
fragment 분리 에러
0
127
1
admin 페이지에서 projectSkill 질문 있습니다
0
117
2
서버 배포 후 수정하려고 하면
0
295
2
docker-compose 파일 작성하기 질문 있습니다.
0
288
2
Admin 뷰개발-테이블 페이지와 관련한 질문드립니다.
0
187
1
Docker 데스크탑에서 push to Docker hub 를 클릭한 후 오류가 납니다...
0
386
3
ExperienceRepositoryTest 실행 오류
0
144
2
projectRepository assertion 오류 질문입니다.
0
189
1
테스트코드 실행중 오류와 경고에 관한 질문 입니다.
0
243
2
@PostCunstructer 를 사용하는 이유가 뭔가요?
0
286
2
환경변수 설정을 yml 아니라 properties로 해도 상관 없나요?
0
122
1
git 사용 오류 질문 드립니다
0
213
2





