entity 어노테이션은 데이터베이스의 테이블과 일대일로 매칭되는 객체단위이며 entity객체의 인스턴스 하나가 테이블에서 하나의 레코드 값을 의미한다. 그래서 객체의 인스턴스를 구분하기 위한 유일한 키값을 가지는데 이것은 테이블 상의 primary key와 같은 의미를 가지며 @id어노테이션으로 표기된다.
@Entity
public class food {
...
}
JPA에서 Entity클래스 상에 Primary key를 명시적으로 표시해야 되는데 그것을 @Id 어노테이션을 이용해 PK를 지정한다.
public class food {
@Id
private Long Id;
}
Column 어노테이션은 객체 필드와 DB 테이블 컬럼을 맵핑한다.
public class food {
@Id
private Long id;
@Column(nullable = false)
private String foodName;
@Column(nullable = false)
private int price;
}
기본적으로 웹 애플리케이션에서 사용하는 VO 객체는 , DB 테이블의 column 과 같은 이름의 private 변수를 가지고, getter setter 메소드를 정의 한 후 toString 메소드를 정의한다. 하지만 프로젝트가 커지면 커질수록 위에 말한 변수 , 메소드들이 기하급수적으로 늘어날 것이고, 늘어나면 늘어날 수록 추가도 귀찮을 뿐더러 관리도 힘들어져 결국에는 유지보수가 힘들어진다. 위의 문제를 해결한 라이브러리가 lombok이다.
기본키 생성을 데이터베이스에게 위임하는 방식으로 id값을 따로 할당하지 않아도 데이터베이스가 자동으로 AUTO_INCREMENT를 하여 기본키를 생성해준다.
public class food {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
}
이것들 외에도 엄청 많은 것같은데 일단은 오늘 배운 Spring에서 중요해 보이는 몇가지만 골라봤다.
오늘부터 Spring공부를 본격적으로 시작했는데, 나중에 또 정리해서 TIL로 작성해봐야겠다.