도메인 정의
이 애플리케이션의 중심이 되는 도메인 개념은 독자의 독서 목록인 책이다. 따라서 책을 나타내는 엔티티를 정의해야 한다. 코드 2-5는 Book 타입의 정의를 보여 준다.
코드 2-5 독서 목록에서 책을 표현하는 Book 클래스
package readinglist; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class Book { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; private String reader; private String isbn; private String title; private String author; private String description; public Long getId() { return id; } public void setId(Long id) { this.id=id; } public String getReader() { return reader; } public void setReader(String reader) { this.reader=reader; } public String getIsbn() { return isbn; } public void setIsbn(String isbn) { this.isbn=isbn; } public String getTitle() { return title; } public void setTitle(String title) { this.title=title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author=author; } public String getDescription() { return description; } public void setDescription(String description) { this.description=description; } }
이처럼 Book 클래스는 책을 표현하는 프로퍼티와 접근자 메서드(Accessor Method)가 있는 간단한 자바 객체다. Book 클래스에 @Entity 애너테이션을 붙여 클래스를 JPA 엔티티로 지정했다. id 필드에는 @Id와 @GeneratedValue 애너테이션을 붙여 엔티티의 유일성을 식별하고, 자동으로 값을 제공하는 필드로 지정했다.