Java&Spring
-
Spring data-JPA,data-Rest (feat.프로젝트 구조)Java&Spring/Spring 2022. 10. 31. 14:18
2 가지를 볼거다,data-jpa ,data-rest 1. Spring Data JPA Entity type 과 pk 값을 주면 자동으로 DAO 를 만들어주고 CRUD implementation 을 제공하는 기능을 한다 . Repository 를 만든다. package udemycode.dao; import org.springframework.data.jpa.repository.JpaRepository; import udemycode.domain.Employee; public interface EmployeeRepository extends JpaRepository { } 끝이다. Service 를 만든다. package udemycode.service; import lombok.RequiredArgsC..
-
@QualifierJava&Spring/Spring 2022. 10. 31. 13:34
이글은 유데미 강의 Sprin & Hibernate for Beginners 539 번 강의의 내용입니다. @Repository @RequiredArgsConstructor public class EmployeeDAOJpaImpl implements EmployeeDAO{ @Autowired private final EntityManager em; @Repository @RequiredArgsConstructor public class EmployeeDAOHibernateImpl implements EmployeeDAO{ @Autowired private final EntityManager em; Service 에서 받을 implement 가 현제 두개(JPA DAO,Hibernate DAO)라 스프링에..
-
자바 Switch 문 vs If else 문 성능 비교Java&Spring/Java 2022. 9. 29. 20:52
두 함수 중 어느 것이 더빠를가? public static void codeswitch() { String str1 = "C"; switch (str1) { case "A": break; case "B": break; case "C": break; } } public static void ifelse() { String str = "C"; if ("A".equals(str)) { } else if ("B".equals(str)) { } else if ("C".equals(str)) { } } 답은 swtich 문이다. Byte code 를 보자 public static codeswitch()V L0 LINENUMBER 9 L0 LDC "C" ASTORE 0 L1 LINENUMBER 10 L1 ALOAD ..
-
Spring data Jpa camelCase 자동 underscore 방지 MysqlJava&Spring/Spring 2022. 9. 19. 13:11
Spring Entity 에서 다음과 같이 camelCase 로 fild 값을 선언했지만 private LocalDateTime orderDate; //주문시간 Mysql 에서는 order_date 라고 칼럼명이 들어간다. 이는 매핑에 오류를 불러올 수 있다. yml 파일에 naming 를 추가해주자. jpa: hibernate: ddl-auto: create naming: implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl # 자동 camelCase-> underscore 전환 방지. physical-strategy: org.hibernate.boot.model.naming.PhysicalNaming..
-
Spring Test 기초[1] , assertall()Java&Spring/Spring 2022. 9. 6. 21:10
TDD 를 공부 할 때가 되었다.. 단위 테스트를 어떻게 하는지 여기서는 다루지 않는다. 기본적인 어노테이션과 개념만 적어본다. Junit 5 를 사용한다. 스프링 부트 버전 2.2+ , 프로젝트를 만든 다면 기본적으로 junit5 의존성이 추가가 된다 . JUNIT PlatForm : 테스트를 실행해주는 런처를 제공한다. testApi 제공 Jupiter: TestEngine API 구현체로 JUnit 5 를 제공한다. Vintage : Junit 4 와 3를 지원하는 testEngine 을 지원 . test 생성 . src folder 의 원하는 class 에 가서 , (control)cmd+shift+T 를 눌러준다. (Intellij File -> Project Structre 에 들어가 mark..
-
JPA 영속성 컨텍스트Java&Spring/Spring 2022. 9. 1. 14:55
영속성 컨텍스트 = 엔티티를 저장 하는 환경 정의: Domain 에서 정의 한다. 엔티티(Entity) = 개체 , 데이터의 집합 , 저장 관리 되는 대상. --- JPA ---- Spring 에서는 Entity 어노테이션을 붙임으로 정의를 한다 . 1. 모든 Entity 는 pk 를 가지고 있어야한다. @GeneratedValue 를 이용하여 identifier 의 정의 방법을 설정 할 수 있다. 2. ex) package hackathon.nomadworker.domain; import com.fasterxml.jackson.annotation.JsonIgnore; import org.locationtech.jts.geom.Point; import javax.persistence.*; import l..
-
Spring & JPA persist 자동 생성 id 받기Java&Spring/Spring 2022. 8. 26. 21:11
스프링 persist 이해 하기 . @RequiredArgsConstructor public class PlaceRepository { @Autowired private final EntityManager em; public Place post(Place place) { em.persist(place); System.out.println(place.getId()); // make point return place; } Place class 의 instance place 를 매개 변수로 받아 persist 를 하면, id 를 받는다.. ? -> flush 를 해줘야 한다. @Repository @RequiredArgsConstructor public class PlaceRepository { @Autowi..