전체 글
@OnDelete와 CascadeType.ALL, orphanRemoval 속성
사용법 CascadeType.ALL는 아래와 같이 쓴다. @OneToMany(cascade = CascadeType.ALL) private List members = new ArrayList(); @OnDelete는 아래와 같이 쓴다. @OneToMany @OnDelete(action = OnDeleteAction.CASCADE) private List members = new ArrayList(); 참조무결성과 Cascade create table Member ( foreign key (member_id) references Team (id) ); 참조 무결성에 대한 개념을 복습하자면 Team과 Member 연관관계에 있고 Team의 기본키와 member_id 외래키를 설정할 경우 Team의 기본키 데..
@ManyToOne과 @OneToMany로 배우는 JPA 기초 사용법 - 실습으로 배우는 JPA 1편
@ManyToOne과 @OneToMany를 실습해보면서 발생할 수 있는 에러들을 대처해보는 예제입니다. 본 글은 JPA에 익숙하지 않은 분들을 위한 포스팅입니다. 실습 예제는 여기에 있습니다. 서론 '학교'와 '학생'은 1:N의 관계에 있습니다. 그러므로 '학교'는 기본키, '학생'은 외래키로 활용되며 아래와 같이 Entity를 만들 수 있습니다. School Entity @Entity @Getter @Setter @NoArgsConstructor @ToString public class School { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy..
카카오 공유하기 - imageUrl과 serverCallbackArgs 사용법
카카오 공유하기 Javascript 코드 예시 Kakao.init('~~'); Kakao.Link.createDefaultButton({ content: { imageUrl: ~~ }, serverCallbackArgs: '{"key":"value"}' }) Server to Server 통신 방식 imageUrl 내 서버에서 카카오 서버 호출 카카오 서버에서 내 서버를 호출 카카오 공유하기는 위와 같은 방식을 사용한다. 그러므로 imageUrl에는 localhost나 127.0.0.1과 같이 자기 자신을 식별하는 IP는 이미지 삽입이 불가능하다. 공인 IP를 적어줘야만 카카오 서버에서 나의 공인 아이피를 호출하기 때문이다. 더불어 imageUrl의 호출 Url은 카카오 서버에 1시간 동안 캐시로 남아있..
[Thymeleaf] Fragment vs thymeleaf-layout-dialect 차이
둘다 공통 Layout 처리를 하기 위해 사용한다. Fragment 1. index.html (스프링으로부터 redirect 된 실제 컨텐츠 페이지) 컨텐츠 내용 2. header.html 공통 헤더 파일 추가 index.html에 위와 같은 코드를 적으면 header.html의 fragment 값이 headerFragment인 것을 가져오는 코드. thymeleaf-layout-dialect Maven Or Gradle에 thymeleaf-layout-dialect 의존성을 추가해서 사용한다. 1. index.html (실제 컨텐츠 페이지) 2. 스프링으로부터 redirect 된 컨텐츠 페이지 컨텐츠 내용 스프링에서 redirect 된 컨텐츠 페이지에 layout:fragment="content"를 적..