Java, JavaScript/Spring Boot (15) 썸네일형 리스트형 [Spring Boot] 연관관계 메서드 설정하기 JPA는 데이터베이스를 객체화하였기 때문에 Entity를 설계할 때에 연관관계 메서드를 넣어주어야 합니다. 연관관계 메서드는 연관관계를 가진 Entity를 생성할 때 사용하는 함수로 연관관계에서 주인이 되는 곳에 선언되게 됩니다. 테이블 설계는 https://hangjastar.tistory.com/223을 기준으로 진행하겠습니다. 연관관계의 주인은 일대다, 다대일의 경우에는 다쪽에 일대일은 경우에 따라 다르지만 더 호출이 많은 곳을 주인으로 설정하면 됩니다. 테이블 설계에서는 관계는 다음과 같습니다. 테이블 관계( :양방향, -> : 단방향) 주인 member pet pet chart -> pet chart chart -> vet chart prescription chart prescription ve.. [Spring Boot] 동물병원 진료 데이터베이스 설계 테이블 설계를 제대로 하지 않고 머릿속으로 생각하여 진행하니 수정되는 부분이 빈번하게 발생되어 더 견고하게 제작하기 위해서 요구사항부터 ERD설계를 직접 해보았습니다. 프로젝트의 주제는 동물병원 진료 관리 프로그램으로 Spring Boot 기본기를 다지기 위해서 진행하고 있습니다. 다음은 요구사항입니다. 동물병원 진료 프로젝트 요구사항 공통 모든 테이블은 생성 시점과 수정 시점에 대해서 저장해야한다. 회원 회원은 등록 시 이름, 전화번호, 주소를 저장한다. 모든 정보에 대해서 수정이 가능하다. 이름으로 검색할 수 있다. 1명의 회원은 여러 반려동물을 저장할 수 있다. 반려동물 등록 시 이름과 생년월일을 저장한다. 수정 시에는 이름만을 수정할 수 있다. 조회 시 이름으로 검색할 수 있다. 반려동물은 1명의.. [Spring Boot] @Autowired를 사용하지 않고 Bean 가져오기 Test 코드를 작성할 때 @Autowired와 @SpringBootTest를 사용하지 않고 테스트할 수 있는 방법에 대해서 알아보겠습니다. 우선, AutoAppConfig class를 프로젝트 최상단에 생성하여주고 @Configuration, @ComponentScan 어노테이션을 추가해줍니다. 코드는 다음과 같습니다. @Configuration @ComponentScan public class AutoAppConfig { } @ComponentScan을 사용하면 @Component가 어노테이션이 있는 것들을 Spring Bean으로 자동으로 등록해줍니다. @Component는 @Service, @Repository에 모두 추가되어 있습니다. 준비가 완료되었으니 테스트 코드를 작성하면 됩니다. Test.. [Spring Boot] IntelliJ Live Templates 생성하는 방법 IntelliJ는 여러 가지 유용한 자동완성 기능을 제공합니다. soutv (System.out.println("variable= " + variable)), psvm(public static void main(String[] args))를 예시로 들 수 있습니다. IntelliJ는 위의 기능들도 제공하지만 사용자가 직접 자동완성 기능을 제작할 수 있게 해 줍니다. 우선 Settings > Editor > Live Templates에 들어갑니다. 다음은 정상적으로 완료되었을 때 보이는 화면입니다. 화면에 보이는 것처럼 + 버튼을 눌러 2 Template Group 버튼을 클릭하여 custom Group을 생성합니다. 생성이 완료되었다면 custom Group을 클릭한 후에 다시 + 버튼을 눌러 1 Liv.. [Spring Boot] Auditing은 뭐야? 테이블을 설계를 할 때 필수적으로 관리되는 Column이 존재합니다. 생성 시간, 수정 시간, 생성한 사람, 수정한 사람 등을 예로 들 수 있습니다. 모든 도메인에 위에 나열한 column들을 생성하여 관리하기에는 번거로움이 있습니다. 이러한 문제를 해결하기 위해 Spring Data JPA에서 Auditing 기능을 제공해줍니다. 다음은 BaseTimeEntity를 생성하여 제공할 데이터들의 정의해줍니다. ... @Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public class BaseTimeEntity { @CreatedDate private LocalDateTime createdDate; @LastModified.. [Spring Boot] Entity 생성은 뭐야? Spring Boot에서 ManyToOne, OneToMany, ManyToMany 관계를 설정하는 방법에 대해서 알아보겠습니다. 다음은 전체 테이블 설계입니다. 1과 가까운 테이블은 일을 나타내고, *와 가까운 테이블을 다를 나타냅니다. 우선 Entity 구현 간에 사용되는 어노테이션들에 대해서 알아보겠습니다. @Id - 해당 변수를 Primary Key로 지정해준다. @GeneratedValue - Primary Key의 생성 전략을 명시한다. @Column - 실제 DB의 Column에 대응하는 변수라는 것을 명시한다. @Entity - 실제 DB의 테이블에 대응하는 클래스라는 것을 명시한다. @Getter - 변수를 선언하면 자동으로 Getter 코드를 만든다. @Setter - 변수를 선언하면 .. [Spring Boot] Intellij 유용한 단축키 모음 Intellij 사용하는 데 있어 아직 서툴기 때문에 유용한 단축키들을 모아서 참고하려고 모음을 만들었습니다. 자주 사용하는 기능들을 위주로 만들었고, 전체 단축키를 볼 수 있는 링크도 만들어 두었으니 필요에 따라 사용하시면 좋을 것 같습니다. ⚠ 윈도우를 기준으로 작성되었습니다. 기능 단축키 코드 끝에 ; 붙여주기 Ctrl + Shift + Enter 변수 추출하기 Ctrl + Alt + v 생성자, Getter, override methods.... 자동 완성 Alt + Insert 동일한 변수명 수정 Shift + F6 자동 코드 정렬 Ctrl + Alt + L class, files, setting 등 검색어와 관련된 것을 검색 Shift + Shift 최근에 open한 파일 목록 확인 Ctrl .. 이전 1 2 다음