diff --git a/src/main/java/cokr/xit/foundation/AbstractEntity.java b/src/main/java/cokr/xit/foundation/AbstractEntity.java new file mode 100644 index 0000000..81dec31 --- /dev/null +++ b/src/main/java/cokr/xit/foundation/AbstractEntity.java @@ -0,0 +1,139 @@ +package cokr.xit.foundation; + +/**정보를 데이터베이스 테이블에 저장하는 엔티티(Entity) 클래스들이 상속하는 베이스 클래스.
+ * 상속받는 클래스는 다음 항목들에 대한 정의를 갖는다. + * + * 이 중 다음 항목들에 해당하는 컬럼은 필수로 테이블에 정의하고 저장한다. + * + * @author mjkhan + */ +public abstract class AbstractEntity { + private String createdBy; + private String createdAt; + private String modifiedBy; + private String lastModified; + private String removedBy; + private String removedAt; + private String useYN; + + /**등록자 아이디를 반환한다. + * @return 등록자 아이디 + */ + public String getCreatedBy() { + return createdBy; + } + + /**등록자 아이디를 설정한다. + * @param userID 등록자 아이디 + */ + public void setCreatedBy(String userID) { + this.createdBy = userID; + } + + /**등록일시를 반환한다. + * @return 등록일시(yyyyMMddhhmmss) + */ + public String getCreatedAt() { + return createdAt; + } + + /**등록일시를 설정한다. + * @param createAt 등록일시(yyyyMMddhhmmss) + */ + public void setCreatedAt(String createAt) { + this.createdAt = createAt; + } + + /**수정자 아이디를 반환한다. + * @return 수정자 아이디 + */ + public String getModifiedBy() { + return modifiedBy; + } + + /**수정자 아이디를 설정한다. + * @param userID 수정자 아이디 + */ + public void setModifiedBy(String userID) { + this.modifiedBy = userID; + } + + /**수정일시를 반환한다. + * @return 수정일시(yyyyMMddhhmmss) + */ + public String getLastModified() { + return lastModified; + } + + /**수정일시를 설정한다. + * @param lastModified 수정일시(yyyyMMddhhmmss) + */ + public void setLastModified(String lastModified) { + this.lastModified = lastModified; + } + + /**제거(삭제)자 아이디를 반환한다. + * @return 제거(삭제)자 아이디 + */ + public String getRemovedBy() { + return removedBy; + } + + /**제거(삭제)자 아이디를 설정한다. + * @param userID 제거(삭제)자 아이디 + */ + public void setRemovedBy(String userID) { + this.removedBy = userID; + } + + /**제거(삭제)일시를 반환한다. + * @return 제거(삭제)일시(yyyyMMddhhmmss) + */ + public String getRemovedAt() { + return removedAt; + } + + /**제거(삭제)일시를 설정한다. + * @param removedAt 제거(삭제)일시(yyyyMMddhhmmss) + */ + public void setRemovedAt(String removedAt) { + this.removedAt = removedAt; + } + + /**사용여부를 반환한다. + * @return 사용여부 + * + */ + public boolean inUse() { + return "Y".equals(getUseYN()); + } + + /**사용여부를 반환한다. + * @return 사용여부 + * + */ + public String getUseYN() { + return useYN; + } + + /**사용여부를 설정한다. + * @param useYN 사용여부 + * + */ + public void setUseYN(String useYN) { + this.useYN = useYN; + } +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/foundation/User.java b/src/main/java/cokr/xit/foundation/User.java index 84e1d52..39e880e 100644 --- a/src/main/java/cokr/xit/foundation/User.java +++ b/src/main/java/cokr/xit/foundation/User.java @@ -4,7 +4,7 @@ import java.io.Serializable; /**사용자 정보. */ -public class User implements Serializable { +public class User extends AbstractEntity implements Serializable { private static final long serialVersionUID = 1L; private static final String UNKNOWN = "anonymous"; public static final User unknown = new User().seal(); diff --git a/src/main/java/cokr/xit/foundation/component/AbstractDao.java b/src/main/java/cokr/xit/foundation/component/AbstractDao.java index 59bab3e..0af8d08 100644 --- a/src/main/java/cokr/xit/foundation/component/AbstractDao.java +++ b/src/main/java/cokr/xit/foundation/component/AbstractDao.java @@ -132,6 +132,11 @@ public abstract class AbstractDao extends EgovAbstractMapper { return ApplicationException.get(t); } + /**리스트의 각 row의 필드 이름을 camel case로 변환한다. + * @param 리스트 유형 + * @param list 리스트 + * @return 리스트 + */ protected static >> T underscoredToCamelCase(T list) { if (list.isEmpty()) return list; diff --git a/src/main/java/cokr/xit/foundation/component/AbstractMapper.java b/src/main/java/cokr/xit/foundation/component/AbstractMapper.java index 625669e..ec93220 100644 --- a/src/main/java/cokr/xit/foundation/component/AbstractMapper.java +++ b/src/main/java/cokr/xit/foundation/component/AbstractMapper.java @@ -8,12 +8,12 @@ import cokr.xit.foundation.data.DataObject; * 애플리케이션의 매퍼 인터페이스는 이 인터페이스를 상속받아 정의하고,
* 이름은 (업무객체 이름 || 테이블 이름) + 'Mapper'로 한다. * {@code @Mapper} 어노테이션을 적용하고 카멜 표기법으로 이름을 설정한다. 다음은 그 예다. - *
 package cokr.xit.example.business.dao;
+ * 
 package cokr.xit.example.business.dao;
  * import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
  * {@code @Mapper("tableBMapper")}
  * public interface TableBMapper extends AbstractMapper {
  *    ...
- * }
+ * }
*

매퍼 파일의 작성
* 매퍼 파일은 매퍼 인터페이스가 실행하는 SQL문을 저장한다. *