package com.u2ware.springfield.sample.part1.step2;
import javax.persistence.Entity;
import javax.persistence.Id;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import com.u2ware.springfield.config.Springfield;
import com.u2ware.springfield.config.Springfield.Strategy;
@Springfield(
strategy=Strategy.JPA
)
@Entity
public @ToString class JpaBean {
@Id
@Getter @Setter private String id;
@Getter @Setter private String password;
@Getter @Setter private String name;
@Getter @Setter private Integer age;
}
@Springfield(strategy=Strategy.SQLSESSION) 선언으로 다음 4개의 Bean 이 자동 생성, 등록 된다.
| bean name | bean type | bean implement |
|---|---|---|
| "jpaBeanController" | EntityController<JpaBean, JpaBean> | com.u2ware.springfield.controller. EntityHandler |
| "jpaBeanValidator" | EntityValidator<JpaBean, JpaBean> | com.u2ware.springfield.validation. EntityValidatorImpl |
| "jpaBeanService" | EntityService<JpaBean, JpaBean> | com.u2ware.springfield.service. EntityServiceImpl |
| "jpaBeanRepository" | EntityRepository<JpaBean, String> | com.u2ware.springfield.repository.jpa. EntityJpaRepository |
CRUD 를 기본으로 한 EntityController 의 9 개 method 를 RequestMapping 한다.
| 매핑 경로 | HTTP Method | Controller Method 이름 | 예제 Command 객체 | 예제 매핑 경로 |
|---|---|---|---|---|
| /{topLevelMapping}/ | GET | home() | JpaBean | /part1/step2/ |
| /{topLevelMapping} | GET | findForm() | JpaBean | /part1/step2 |
| /{topLevelMapping} | POST | find() | JpaBean | /part1/step2 |
| /{topLevelMapping}/{id} | GET | read() | JpaBean | /part1/step2/bar |
| /{topLevelMapping}/new | GET | createForm() | JpaBean | /part1/step2/new |
| /{topLevelMapping}/new | POST | create() | JpaBean | /part1/step2/new |
| /{topLevelMapping}/{id}/edit | GET | updateForm() | JpaBean | /part1/step2/bar/eidt |
| /{topLevelMapping}/{id}/edit | PUT | update() | JpaBean | /part1/step2/bar/eidt |
| /{topLevelMapping}/{id}/edit | DELETE | delete() | JpaBean | /part1/step2/bar/eidt |
jpa 설정