전체 글
-
Spring - JPA cannot simultaneously fetch multiple bagsSpring 2022. 11. 4. 19:16
Caused by: org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags 하나의 entity에 한개 이상의 FetchType.EAGER 를 사용할 때 발생합니다. @Entity public class Person { @OneToMany(fetch = FetchType.EAGER, mappedBy = "person", cascade = CascadeType.REMOVE) private List phoneList; @OneToMany(fetch = FetchType.EAGER, mappedBy = "person", cascade = CascadeType.REMOVE) private List carLis..
-
Java - Long.valueOf() 변환시 null 처리하는 방법Java 2022. 9. 30. 17:30
Long 값을 가지고 처리 시 null값이 들어가면 안되는 경우에 null safe 하게 처리하는 방법입니다. public static Comparator getComparator() { return Comparator.comparing(p -> Long.valueOf(p.getAge()), Comparator.naturalOrder()); } 예를 들어 Person object에서 age를 비교하는 comparator를 만드는 경우입니다. p.getAge()가 null인 경우 exception이 발생하게 됩니다. 이런 경우에 p.getAge()가 null일때 default 값을 넣어서 처리가 필요합니다. public static Comparator getComparator() { return Compa..
-
Java - Optional if else statement로 사용하는 방법Java 2022. 9. 27. 19:30
Java의 Optional 클래스는 NPE(NullPointerException)을 방지하도록 도와주는 클래스입니다. Optional 클래스를 살펴보면 ifPresent(), isPresent(), get(), orElse(), orElseGet() 등의 메소드가 있습니다. 메소드를 살펴보면 값이 있을 때, 아니면 값이 없을 때에 대한 처리만 있어서 if else 구문처럼 처리를 하려면 어떻게 해야될지 고민이 될 때가 있습니다. Optional 값이 있거나 없을 때 동시에 처리하는 방법에 대해서 알아 보겠습니다. 1. isPresent() if (optional.isPresent()) { car = optional.get(); } else { car = new Car(); } optional 값이 존재하..
-
Java - Set 순회하는 방법 (iteration)Java 2022. 9. 23. 14:56
자바에서 Set 자료구조 반복문을 어떻게 구현하는지 알아보겠습니다. 1. for loop import java.util.HashSet; import java.util.Set; class Example { public static void main(String[] args) { Set sets = new HashSet(); sets.add("A"); sets.add("B"); sets.add("C"); sets.add("D"); for (String str: sets) { System.out.println(str); } } } 2. iterator while loop import java.util.HashSet; import java.util.Set; import java.util.Iterator; cla..
-
Spring - LazyInitializationException: could not initialize proxy – no SessionSpring 2022. 9. 20. 01:32
JPA를 쓰다보면 이런 에러메시지를 볼 때가 있습니다. 에러메시지 Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.example.domain.CompanyEntity.personList, could not initialize proxy - no Session Entity 코드 @Entity @Table(name = "company") public class Company implements Serializable { @Id @Column(name = "id") private Long id; @OneToMany(fetch = FetchType.LAZY, mappe..
-
Java - List의 마지막 요소 얻는 방법Java 2022. 9. 7. 19:07
자바 리스트에서 마지막 element를 가져오는 방법을 알아보겠습니다. list에서 마지막 요소(element)를 가져오는 코드 list.get(list.size() - 1); 예제 import java.util.ArrayList; class Example { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("A"); list.add("B"); list.add("C"); list.add("D"); System.out.println("Last Element: " + getLastElement(list)); } public static E getLastElement(ArrayList list) { if ((..
-
DB - 데이터 삭제database 2022. 9. 6. 01:13
DB에서 데이터를 삭제하는 방법은 크게 두가지가 있습니다. 1. hard delete 2. soft delete hard delete는 SQL에서 DELETE 명령어를 사용하여 데이터를 삭제하는 방법입니다. soft delete는 UPDATE 명령어를 통해 삭제 여부를 판단하는 컬럼값을 업데이트 해주는 방법입니다. 개발할 때는 soft delete를 많이 사용합니다. 삭제한 데이터를 복구해야 할 경우도 있고 나중에 사용될 수도 있다는 생각에서 보통 soft delete를 합니다. 삭제 여부를 판단하는 컬럼은 deleted, delYn 등의 방식으로 boolean, Y/N 값을 가집니다. id name createdAt delYn 1 james 2022-01-01 Y 2 stephen 2022-03-03 ..