【问题标题】:Hibernate HQL for finding by parameter and criteriaHibernate HQL 用于按参数和标准查找
【发布时间】:2012-01-31 20:52:02
【问题描述】:

我很难理解 Hibernate HQL,只习惯于 sql,我不明白我的 HQL 有什么问题。任何帮助将不胜感激:

@Entity
public class KursKode {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String kursKode;
private boolean used;

@ManyToOne
@JoinColumn (name = "kursId")
@LazyCollection(LazyCollectionOption.FALSE)
private Kurs kurs;
....
}

我试图只获取特定 Kurs 的“KursKode”。并且只有“使用=假”的“KursKodes”。所以我在我的 DAO 中尝试了这个:

List<KursKode> kursKodeList = getHibernateTemplate().find("from KursKode k where k.kurs.kursId = ? and not k.used", kursId);

但这给了我以下错误: 数据访问失败

意外的 AST 节点:。靠近第 1 行,第 74 列 [来自 no.dahlsdata.model.Kurs.KursKode k where k.kurs.kursId = ?而不是 k.used];嵌套异常是 org.hibernate.hql.ast.QuerySyntaxException: unexpected AST node: 。靠近第 1 行,第 74 列 [来自 no.dahlsdata.model.Kurs.KursKode k where k.kurs.kursId = ?而不是 k.used]

【问题讨论】:

    标签: hibernate hql


    【解决方案1】:

    问题很小。我忘了把 =false 放在最后。应该是这样的:

    List<KursKode> kursKodeList = getHibernateTemplate().find("from KursKode k where k.kurs.kursId = ? and not k.used=0", kursId);
    

    【讨论】:

      猜你喜欢
      • 2011-08-25
      • 1970-01-01
      • 2010-09-16
      • 1970-01-01
      • 2017-12-30
      • 2011-05-19
      • 1970-01-01
      • 2011-09-16
      相关资源
      最近更新 更多