我正在使用JPA应用程序.JPA注释应用于Getter方法及其工作,但是当我尝试在字段上应用注释时,编译器会生成错误。 我想在字段上应用注释。
@Entity
@Table(name="TB_DEMO",query="select q from TB_DEMO q")
public class Demo extends DomainRoot{
@Column(name="VAR_COUNT")
private int varCount;
public int getCount(){
return this.varCount;
}
public void setCount(int count){
this.varCount=count;
}
}
错误:org.springframeowork.dao.InvalidDataResourceUsageException: 无法准备声明
org.h2.jdbc.JdbcSQLException:未找到“QSXXXXXXXX_.VARCOUNT”列
答案 0 :(得分:1)
持久性提供程序不考虑您的字段属性为什么DomainRoot或应用程序默认访问使用Property的映射(获取的注释)并且您尝试使用Field的映射(字段上的注释)。
规范说在这种情况下(Inhritance),这种竞争是不可预测的。
对于您的示例,在类级别增加@Access(AccessType.FIELD)或仅在整个类层次结构上使用相同的访问级别,而不声明@Access注释。