gpt4 book ai didi

java - 意外的 JPA 错误 :Invalid column name

转载 作者:行者123 更新时间:2023-12-01 15:56:17 25 4
gpt4 key购买 nike

使用jboss5.1.x、ejb3.0

这两天让我发疯:

我正在尝试简单的 where 子句查询,但我不断收到该错误:

<小时/>

这是我通过 JPSQL 查询得到的结果:

       String queString ="select s from T04SysParms s WHERE s.key_Name='EXECUTION_TIME'"; 
Query q = em.createQuery(queString);
List<T04SysParms> results = (List<T04SysParms>) q.getResultList();

我得到的异常:

org.hibernate.QueryException:无法解析属性:key_Name of:com.mirs.ecms.db2.T04SysParms [从 com.mirs.ecms.db2.T04SysParms 中选择 s WHERE s.key_Name='EXECUTION_TIME']

<小时/>

这是我的映射类:

@Entity
@Table(name = "T04_SYS_PARMS", schema = "ECMS")
public class T04SysParms implements java.io.Serializable
{

// Fields

private String key_Name;
private String value_Name;

// Constructors

/** default constructor */
public T04SysParms()
{
}

/** minimal constructor */
public T04SysParms(String keyName)
{
this.key_Name = keyName;
}

/** full constructor */
public T04SysParms(String keyName, String valueName)
{
this.key_Name = keyName;
this.value_Name = valueName;
}

// Property accessors
@Id
@Column(name = "KEY_NAME", unique = true, nullable = false, length = 100)
public String getKeyName()
{
return this.key_Name;
}

public void setKeyName(String keyName)
{
this.key_Name = keyName;
}

@Column(name = "VALUE_NAME", length = 200)
public String getValueName()
{
return this.value_Name;
}

public void setValueName(String valueName)
{
this.value_Name = valueName;
}

}

数据库中实际表名:T04_SYS_PARMS映射表名称为:T04SysParms

有什么想法吗?谢谢,射线。

最佳答案

问题出在其中一个列名上。确保您同时拥有 VALUE 列和 KEY_NAME 列。还要考虑可能的大小写敏感问题。

顺便说一句,我不明白为什么你需要在这里进行 native 查询。不能使用 JPQL 查询吗?请注意,在 JPQL 查询中,您必须引用类和字段,而不是表和列。所以它不是KEY,但可能是key

顺便说一句,KEY有时被数据库保留(如其他人建议的VALUE)。怎么样 - 打开一些数据库管理工具并尝试运行查询。只有在它起作用后,才将其移动到您的代码中。

关于java - 意外的 JPA 错误 :Invalid column name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4984084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com