【问题标题】:JDBCSQL Exception : Column not found [@Column annotation is not working field in JPA]JDBCSQL 异常:未找到列 [@Column 注释在 JPA 中不是工作字段]
【发布时间】:2017-12-15 20:26:36
【问题描述】:

我正在使用 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:未找到列“QSXXXXXXXXX_.VARCOUNT”

【问题讨论】:

  • 错误是什么?你是怎么编译的?
  • JDBCSQLException 不是编译错误。而是发布例外。
  • 是的。让我发布错误
  • 发布您的完整实体类定义。
  • 它使用 getter 方法但不使用字段

标签: java spring hibernate maven jpa


【解决方案1】:

持久性提供程序没有考虑您的字段属性,为什么 DomainRoot 或应用程序默认访问使用按属性映射(获取注释),而您尝试使用按字段映射(字段注释)。

规范说在这种情况下(继承),行为是不可预测的。

对于您的示例,在类级别增加 @Access(AccessType.FIELD) 或仅在整个类层次结构上使用相同的访问级别而不声明 @Access Annotations。

【讨论】:

    猜你喜欢
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多