2012-08-14 3 views
0

다 대 다 관계로 링크 된 평가 및 응답의 두 클래스가 있습니다. 같은 평가의 코드는 같습니다@Formula와 다 대 다 관계의 열을 채울 수 없습니다.

@Entity 
public class Evaluation implements Serializable { 

private Long id; 

@ManyToMany 
public List<Reponse> getListOfReponses() { 
    return listOfReponses; 
} 

@Formula("(SELECT COUNT(*) FROM Evaluation_Reponse er, Reponse r, WHERE er.Evaluation_id = id AND r.id = er.listOfReponses_id AND r.correct = 1)") 
public Integer getNbCorrectAnswers() { 
return nbCorrectAnswers; 

}

수정이 Reponse의 속성이며, 부울입니다.

보시다시피, 최대 절전 모드 수식을 작성하여 nbCorrectAnswers 열을 채 웁니다. 그러나 평가를 저장하면 nbCorrectAnswers 열이 비어있는 것을 제외하면 모든 것이 올바르게 작동합니다.

그럼, 수식에 잘못된 점이나 내 테이블 전체를 올바르게 채우는 방법을 알려주시겠습니까? 감사합니다.

답변

0

수식은 항상 읽기 전용입니다. hibernate는 값을 삽입하는 다른 코드/엔티티가 있다고 가정합니다. AFAIK 수식은 데이터베이스에서로드 할 때만 평가됩니다.

관련 문제