소개
게시글
질문&답변
2020.11.01
안녕하세요. noClassDefFoundError Q 파일을 찾지 못하는 문제 문의 드립니다.
저역시 명확한 답을 얻지 못하였습니다. 현재는 다운그래이드해서 사용중이지만 본질적인 문제해결이 아니라서 답답한 면이 있습니다. 정확한 이유를 알게되면 답변 달도록 하겠습니다. 수고하세요
- 1
- 8
- 3.3K
질문&답변
2020.08.01
안녕하세요. noClassDefFoundError Q 파일을 찾지 못하는 문제 문의 드립니다.
확인을 좀 더 해보니 현재 개발중인 코드에서는 문제가 없었는데, 이전 소스를 git에서 받아서 테스트 해보니 Qclass 참조가 안되네요 그래서 좀 찾아봤는데 최근에 Java Test Runner, Debugger for java 가 업데이트 되었습니다. 다시 downgrade 시켜서 실행해 보니 잘 동작하더군요. 버전을 아래와 같이 수정하시고 0.22.4 (사진) 0.25.1 (사진) - 터미널 .\gradlew clean .\gradlew class - Vscode Ctrl + Shift + p > clear the java language server workspace 수고하세요
- 1
- 8
- 3.3K
질문&답변
2020.08.01
안녕하세요. noClassDefFoundError Q 파일을 찾지 못하는 문제 문의 드립니다.
안녕하세요 vscode에서 현재 정상 동작됩니다 . 우선 vscode에서 spring을 사용하기위한 Extenstions 버전을 확인해 보시면 좋을 것 같습니다. 아래와 같은 버전인지 확인해 주시고 Debugger for java는 아래 버전(0.25.1)으로 맞춰주세요 (사진) (사진) 그리고 build.gradle 파일을 //querydsl 주석 위주로 본인 코드와 비교해 보시면 될 것 같습니다.
- 1
- 8
- 3.3K
질문&답변
2020.05.17
안녕하세요. noClassDefFoundError Q 파일을 찾지 못하는 문제 문의 드립니다.
어쩌다보니 자답입니다 .... 질문글을 지울까 하다가 다른분들에게 혹시 도움일 될까 싶어 글 남깁니다. Visual studio code Spring framework tools 중 Debugger for java 버전이 3일 전에 업데이트 되면서 발생된 문제 0.26 -> 0.25.1 다운그레이드로 해결 (사진)
- 1
- 8
- 3.3K
질문&답변
2020.05.03
양방향 연관관계 설정 후 bulk delete 실행시 문제점 문의드립니다.
안녕하세요 답변을 늦게 봤습니다. 말씀주신 내용은 아래와 같습니다. Live.java (Entity) public class Live extends BaseTimeEntity { @Id @GeneratedValue @Column(name = "live_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "league_id") @NotNull private League league; @ManyToOne(optional = true, fetch = FetchType.LAZY) @JoinColumn(nullable = true) private Team team1; @ManyToOne(optional = true, fetch = FetchType.LAZY) @JoinColumn(nullable = true) private Team team2; private String gamenumber; private String round; @Enumerated(EnumType.STRING) private Status status; @OneToMany(mappedBy = "live", cascade = CascadeType.ALL) private ListWatch> watch = new ArrayList(); } Watch.java(Entity) public class Watch extends BaseTimeEntity { @Id @GeneratedValue @Column(name = "watch_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "live_id") private Live live; private String title; private String detail; private String language; @Enumerated(EnumType.STRING) private Provider provider; private String url; //=== 양방향 연관관계 메서드 ===// public void changeLive(Live live) { this.live = live; live.getWatch().add(this); } } Real Database Table (사진) 현재 진행상황은 아래와 같이 연관관계 자식인 watch를 먼저 지우고 live를 지우는 방식으로 cascade 를 활용하지 못하는 방식으로 처리 하고 있습니다. @CacheEvict(value = { "livePage", "liveSlice" }, allEntries = true) @Transactional public void removeLive(ListLiveDto> liveDtos) { ListLive> deletelives = deleteFromDto(liveDtos); // convert to entity from dto ListWatch> deletewatchs = new ArrayList(); deletelives.stream().forEach(d-> deletewatchs.addAll(d.getWatch())); watchRepository.deleteInBatch(deletewatchs); // 먼저 watch 삭제 liveRepository.deleteInBatch(deletelives); // 이후 live 삭제 } 궁극적으로는 cascade를 활용해서 깔끔하게 live만 delete 하면 watch가 지워지는 동작을 구현하고자 합니다. 감사합니다.
- 0
- 3
- 323