🚩 JPA 주의할 점
- 실행 시 Bean 중복 오류가 날 수 있다. 해당 포스팅의 3번을 참고한다.
src
└── main
├── java
│ └── 베이스 패키지
│ └── ...
│ ├── bo
│ │ └── 테이블명BO.java
│ ├── entity
│ │ └── 테이블명Entity.java
│ ├── repository
│ │ └── 테이블명Repository.java
│ └── Controller.java
└── webapp
└── WEB-INF
└── jsp
└── ...
├── 페이지명1.jsp
├── 페이지명2.jsp
└── ...
1) 주요 어노테이션
@Controller
(JSP 경로 리턴->HTML)/@RestController
(객체 리턴->JSON, String 리턴->HTML)@RequestMapping("공통 요청 URL")
@Autowired
@RequestMapping(path = "요청 URL", method = RequestMethod.GET)
/@GetMapping("요청 URL")
@RequestMapping(path = "요청 URL", method = RequestMethod.POST)
/@PostMapping
@RequestMapping("요청 URL")
: @RequestParam("요청 파라미터명")
@RequestParam(value = "요청 파라미터명", required = false, defaultValue = "기본값")
@ModelAttribute
2) 주의 사항
auto_increase
속성을 가진 필드는 자동 생성되므로 삽입하지 않는다.?⭐️key⭐️=1
<-> (Controller 내부 메소드의 파라미터) @RequestParam("⭐️key⭐️") int id123
org.springframework.ui.Model
에서 import 한다.${obj.key}
혹은 ${key}
로 가져온다.return "redirect:재요청 보낼 주소"
로 작성한다.@ResponseBody
작성 후 String을 반환한다. (해당 포스팅 참고)3) 권장 사항
1) 주요 어노테이션
@Service
@Autowired
2) 주의 사항
3) 권장 사항
1) 주요 어노테이션
2) 주의 사항
3) 권장 사항
1) 주요 어노테이션
@ToString
: 클래스에 대한 toString()
메서드를 생성@AllArgsConstructor
: 모든 필드에 대한 매개변수가 있는 생성자 생성@NoArgsConstructor
: 매개변수가 없는 생성자 생성@Builder(toBuilder = true)
: Builer는 클래스에 대한 빌더 패턴 제공. toBuilder는 빌더를 복제할 수 있는 메소드를 생성하도록 하는 옵션(update 시 사용)@Getter
: 모든 필드에 대한 getter 메서드 생성@Entity
: 클래스가 JPA 엔터티임을 표시@Table(name = "테이블명")
: 엔터티의 데이터베이스 테이블에 대한 이름을 지정@Id
: 엔터티의 기본 키@GeneratedValue(strategy = GenerationType.IDENTITY)
: 기본 키를 자동으로 생성하도록 지정@Column(name="컬럼명", updatable=true)
: 카멜케이스로 작성된 필드에 작성. 엔터티 필드를 데이터베이스 테이블의 컬럼에 매핑. updatable=true
는 생략 가능.@UpdateTimestamp
: 엔터티가 업데이트될 때마다 현재 타임스탬프로 필드를 채우도록 표시2) 주의 사항
createdAt
의 경우 새로운 레코드가 삽입될 때만 값이 설정되어야 하므로 @Column(name="컬럼명" updatable=false)
로 작성한다.3) 권장 사항
🚩 가독성을 위해 import 문은 제외했습니다.
1) Controller
2) Service(= BO)
3) Repository(= DAO, Mapper)
4) Entity(= Domain, Model)
5) JSP