2014-07-25 2 views
0

에 조건을 설정하는 방법을 내가 해당 테이블에 이러한 개체 모두를 지속하고 최대 절전 모드

Class College{ 
int id; 

@OneToMany(fetch = FetchType.EAGER, cascade = { CascadeType.ALL }) 
@Fetch(value = FetchMode.SELECT) 
@JoinColumn(name = "ID") 
List<Student> std; 

public void isElligible(){ 
// Some code here 
} 

} 

아래로 두 Class.College와 학생을 보유하고 있습니다. 이제 isElligible가 true를 반환하는 경우에만 STUDENT 테이블에 데이터를 저장하려고합니다. 어떻게 그 조건을 넣을 수 있습니까? 필터를 사용할 수 있습니까?

답변

0

먼저지도가 약간 떨어져있는 것처럼 보입니다. 아마 이런 식으로 뭔가 보일 것입니다 : (당신이있는 경우, 또는 비즈니스 로직 계층)하지 모델 계층을 당신의 영속 계층에서 처리해야 학생들의 조건 persitence에 대한

class College { 
    // ... 
    @OneToMany(mappedBy="college") 
    List<Student> students; 
    // ... 
} 

class Student { 
    // ... 
    @ManyToOne(columnName="college_id", ...) 
    College college; 
    // ... 
} 

둘째, (정의 귀하의 기본 개체의).

+0

최대 절전 모드로 전환되었습니다. 여기에 지속성 레이어가 무엇을 의미합니까? 정확히 어디에 조건을 추가 할 수 있습니다. – Minion

+0

저는 일반적으로 프로젝트가 여러 계층으로 나뉘어져 있다고 말합니다. 귀하의 경우 엔 엔티티 모델을 데이터베이스에 매핑하고 나중에 특정 비즈니스 로직 규칙을 적용하려고합니다. 이러한 종류의 규칙은 캡슐화, 모듈화 및 레이어 간의 코드 독립성을 갖기 위해 일반적으로 다른 프로젝트 모듈에 적용됩니다. 어쩌면 학생이 자신의 상태에 대해 이해할 수 있는지를 프로그래밍 방식으로 확인하고 유지해야합니다. 이 철학에 대한 자세한 내용은 [여기] (http://en.wikipedia.org/wiki/Multitier_architecture)를 참조하십시오. – nuno