답변: 우 리 는 틀 을 어떻게 봐 야 합 니까?

오래된 게시 물 을 뒤 져 보 니 Robbin 이 그 당시 에 다음 사이트 에 자바 코드 와 RoR 코드 http://www.iteye.com/topic/57075?page=1 를 비교 해 야 한다 고 붙 인 것 을 보 았 습 니 다. 저 는 왜 Active Record 가 충혈 모델 이 라 고 말 했 는 지 모 르 겠 습 니 다. DAO 와 Domain 을 분리 하 는 것 은 아 닙 니 다. 제 패키지 JDBC (원본 참조) 에 대해 저 는 Hibernate 와 Spring 을 추가 하여 RoR 을 모방 하 였 습 니 다.테스트 먼저 보기:
     public void testEmployeeExtendsBase(){
              // ID  
		Employee e=new Employee();
		e=(Employee) e.findById(43442l);
		System.out.println(e.getFullName());

              //  
		Employee e2=new Employee();
		e2.setFullName("  ");
		String effectiveDateProperty = "effectiveDate";
		Date lo = getSwitchDate("2005-01-03");
		Date hi = getSwitchDate("2010-09-02");
		Criterion effectiveDateRange = Restrictions.between(
				effectiveDateProperty, lo, hi);
		/*   RoR  :
	    def processing_tasks  
	      find :all, :conditions => ["start_time <= ? AND end_time is null", Time.now]  
	    end  */
		List<Employee> employees=(List<Employee>)e2.find_All(effectiveDateRange);
		for(Employee emp:employees){
			System.out.println("    :"+emp.getId()+"||     :"+emp.getFullName());
		}
	}

 
   Employee 코드 다시 보기
 
@Entity
@Table(name = "Employee")
public class Employee extends Base{
	@Id
	 
	private Long id;
 
	private String fullName;
 
	private Date effectiveDate;

	private Department department;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getFullName() {
		return fullName;
	}

	public void setFullName(String fullName) {
		this.fullName = fullName;
	}

	public Date getEffectiveDate() {
		return effectiveDate;
	}

	public void setEffectiveDate(Date effectiveDate) {
		this.effectiveDate = effectiveDate;
	}

	public Department getDepartment() {
		return department;
	}

	public void setDepartment(Department department) {
		this.department = department;
	}
}


 
   저 는 firebody 의 실현 과 다 릅 니 다 http://www.iteye.com/topic/65406. Base 는 범 형 DAO 를 계승 하고 동적 주입 서브 클래스 와 Session Factory, Session Factory 는 Spring 에서 초기 화 되 었 습 니 다.
   나의 find all 은 Criterion... criterion, HQL 을 넣 을 수 있 는 다 중 방법 이 며, 내 부 는 QBE + QBC 의 조 회 를 바탕 으로 하 며, 이 QBE 는 확장 되 어 관련 관 계 를 지원 합 니 다.
 
   만약 에 POJO 나 실체 류 가 특정한 기 류 를 강제로 계승 할 수 있다 면 본 고의 Base 와 같이 우 리 는 EJB 시대 로 돌아 가 독립 적 으로 테스트 하 는 분야 모델 이 없어 졌 다.
 
   아무 도 Service 하나 에 DAO 하나, DAO 하나 에 Entity 를 맞 춰 야 한다 고 말 한 적 이 없습니다. 이것 은 완전히 당신 의 수요 에 달 려 있 습 니 다. 그리고 다른 모델 을 취 하 는 것 입 니 다!

좋은 웹페이지 즐겨찾기