有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    Criteria是在Document实体上创建的,您试图访问clientId实体中不存在的属性Document,因此hibernate会给您一个异常