대외활동 기록 3

[Spring] 자바 직렬화 Serializable (+JPA Entity)

* 오류 발생 Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Composite-id class must implement Serializable public class MissionHistory implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name="mission_id") private long missionId; @Id @Column(name="user_id") private long userId; @Column private int time; @Column private ..

[JPA] SQL Mapper와 ORM

SQL Mapper와 ORM(JPA) 개념 정리 * 영속성(Persistence) 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성 영속성을 갖지 않는 데이터는 메모리에만 존재하고 있기 때문에 프로그램이 종료되면 사라진다. 메모리 상에 있는 데이터를 데이터베이스에 저장해 영구적으로 저장하여 영속성을 부여할 수 있다. 대표적으로 데이터베이스에 데이터를 저장하는 방법에는 JDBC, Spring JDBC, Persistence Framework(Hibernate, Mybatis) 등이 있다. Persistence Layer란 프로그램 아키텍처에서 데이터에 영속성을 부여해주는 계층으로, 일반적으로 Persistence Framework를 사용하여 개발한다. 이러한 Persistence Fram..

[JPA] OneToMany, ManyToMany 관계 설정하기

OneToMany, 단방향(unidirectional relationships) Entity간의 관계를 맺을 때에는 방향이 있다. 방향이라 하는 것은 해당 Entity가 다른 Entity를 가질 수 있는지 이다. 유저 Entity에서 책 Entity를 멤버 변수로 가지고 있다면 유저 -> 책이라는 방향성을 가진다. 이렇게 한쪽 방향만 가지는 것이 단방향(unidirectional) 책 Entity에서도 유저 Entity를 가진다면 유저 책 관계가 성립 => 양방향(bidirectional) 관계 유저는 가지고 있는 책이 없거나 1개 이상을 소지할 수 있다. (1:N 관계) JPA 어노테이션으로는 @OneToMany라고 표현 User.java @NoArgsConstructor(access = AccessL..