【发布时间】:2011-06-26 10:13:56
【问题描述】:
使用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 [select s from com.mirs.ecms.db2.T04SysParms s WHERE s.key_Name='EXECUTION_TIME']
这是我的 mappe 类:
@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
有什么想法吗? 谢谢, 射线。
【问题讨论】:
-
您从该表 (T04_SYS_PARMS) 中仅选择
VALUE,我怀疑您是否可以使用单个列创建T04SysParms的完整对象。我猜是impl。至少还需要选择标识列。
标签: java hibernate jpa jboss ejb