0
최대 절전 모드에 대한 지침서를 따르고 선택해야하는 엔티티 필드가 있습니다. 그러나 엔티티 저장시 엔트리는 삽입 쿼리에 있으며 오류가 발생하면 종료됩니다. 도와주세요.hibernate @formula 필드 만 선택
@Entity
@Table(name="finances_user")
@Access(value=AccessType.PROPERTY)
public class User {
...
private Date birthDate;
@Formula("lower(datediff(curdate(), birth_date)/365)")
private int age;
@Column("BIRTH_DATE")
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
...
}
나는 아래
@Formula(value = "select lower(datediff(curdate(), birth_date)/365) from finances_user l where l.USER_ID = userId")
오류 스택입니다뿐만 아니라, 아래 시도 필드 '나이'삽입 쿼리에 사용됩니다. 선택 필드 여야합니다.
DEBUG - insert into finances_user (age, BIRTH_DATE, CREATED_BY, CREATED_DATE, EMAIL_ADDRESS, FIRST_NAME, LAST_NAME, LAST_UPDATED_BY, LAST_UPDATED_DATE, USER_ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
DEBUG - could not execute statement [n/a]
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'age' in 'field list'
감사합니다. 그것은 효과가 있었다. 따라서 속성 주석은 수식 필드를 사용하지 않습니다. 아니면 다른 방법이 있나요? – Sekar
Getter에'@ Column'을 넣어 속성 액세스 유형을 사용할 수 있습니다. 클래스에서'@Access'를 제거함으로써 필드에 (AccessType.FIELD에 대해) 또는 getter (AccessType.PROPERTY에)'@ Column'을 넣어 엔티티에서 액세스 유형을 결합 할 수 있습니다. – veljkost