java Hibernate标准问题2
我对Hibernate和Criteria还不熟悉,我在以下方面遇到了一些问题。 我正在尝试获取一个文档列表,我仅有的数据是客户端Id。是否可以通过Hibernate获取数据
我有以下实体
@Entity
public class Document implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@OneToMany(fetch=FetchType.LAZY)
@JoinColumn(name="documentId", referencedColumnName="id")
private List<Gd_Client> clientList;
(...)
@Entity
public class Gd_Client implements Serializable {
@Id
private long clientId;
@Id
private String SecId;
(...)
在道中:
public List<Document> getDocumentsbyClientId(Long clientId) {
Session session = entityManager.unwrap(Session.class);
Criteria crit = session.createCriteria(Document.class);
crit.add(Restrictions.eq("clientId",clientId));
return crit.list();
}
我得到以下错误:
ERROR: Parameter #1 has not been set.
09/11/2014 11:27:44 com.opensymphony.xwork2.util.logging.commons.CommonsLogger error
WARNING: Exception occurred during processing request: could not execute query
org.hibernate.exception.SQLGrammarException: could not execute query
# 1 楼答案
Criteria
是在Document
实体上创建的,您试图访问clientId
实体中不存在的属性Document
,因此hibernate会给您一个异常