Data Access

JpaBean

package example.u2ware.springfield.part1.step2;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
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
        @GeneratedValue
        private @Getter @Setter Integer id;
        private @Getter @Setter String password;
        private @Getter @Setter String name;
        private @Getter @Setter String address;
}

@Springfield

@Springfield(strategy=Strategy.JPA) 선언으로 다음 3개의 Bean 이 자동 생성, 등록 된다.

bean idbean typeimplements
"jpaBeanController" EntityController<JpaBean, JpaBean> com.u2ware.springfield.controller. EntityHandler
"jpaBeanService" EntityService<JpaBean, JpaBean> com.u2ware.springfield.service. EntityServiceImpl
"jpaBeanRepository" EntityRepository<JpaBean, Integer> com.u2ware.springfield.repository.jpa. EntityJpaRepository
application-context.properties:
jpa 설정

orm.jpa.defaultPersistenceUnitName=em
orm.jpa.hibernate.dialect=org.hibernate.dialect.HSQLDialect
#orm.jpa.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
#orm.jpa.hibernate.hbm2ddl.auto=validate
orm.jpa.hibernate.hbm2ddl.auto=update
orm.jpa.hibernate.show_sql=true
orm.jpa.hibernate.format_sql=true

Reference:
JPA
spring-data-jpa\

RequestMapping

EntityController 는 CRUD 를 기본으로 한 9 개의 method 에 RequestMapping 한다.

매핑 경로HTTP MethodController Method 이름예제 Command 객체예제 매핑 경로
/{topLevelMapping}/GEThomeJpaBean/part1/step2/
/{topLevelMapping}GETfindFormJpaBean/part1/step2
/{topLevelMapping}POSTfindJpaBean/part1/step2
/{topLevelMapping}/{id}GETreadJpaBean/part1/step2/7
/{topLevelMapping}/newGETcreateFormJpaBean/part1/step2/new
/{topLevelMapping}/newPOSTcreateJpaBean/part1/step2/new
/{topLevelMapping}/{id}/editGETupdateFormJpaBean/part1/step2/7/eidt
/{topLevelMapping}/{id}/editPUTupdateJpaBean/part1/step2/7/eidt
/{topLevelMapping}/{id}/editDELETEdeleteJpaBean/part1/step2/7/eidt
Note:
Springfield 는 @javax.persistence.Id 를 읽어서 RequestMapping 의 {id} 를 결정하는 용도로 사용한다.
Note:
topLevelMapping 은 별도의 선언 이 없으면, basePackage 를 기준으로 결정된다.
예제에서 basePackage 는 example.u2ware.springfield 이므르 예제에서 topLevelMapping 은 /part1/step2 이 된다.