【问题标题】:Hibernate Example does not find any instanceHibernate 示例未找到任何实例
【发布时间】:2012-10-24 15:01:07
【问题描述】:

我遇到了有线问题。

我使用 Hibernate 通过示例查找实体。

不幸的是,即使我在表中有大约 20000 个条目,我也找不到任何实例。

我的问题是,如何调试这个问题。

01  Puppy p = new Puppy()
02  List list = session.createCriteria(Puppy.class).add(Example.create(p)).list();
03  System.out.println(list.length());

返回 0

编辑:我什至将所有 n-m 和 1-n 反应设置为 null

【问题讨论】:

  • 一个叫“Peter Rader”的白痴的拼写错误

标签: java hibernate criteria query-by-example


【解决方案1】:

您正在执行Query By Example,这意味着Puppy实例p中的属性将生成相应的查询,以便结果集与示例匹配。

我怀疑你的 Puppy 实例中有一些非空属性。

最简单的调试方法是在 Hibernate 中打开 SQL 跟踪,这样您就知道生成的 SQL 是什么,从而知道查询条件是什么,从而知道示例实例中的哪个字段导致了问题。

【讨论】:

  • 我有一个名为“char sex”的属性,它的内容已打印到控制台。 char 不能为 null
【解决方案2】:

首先System.out.println看起来像c#?那么NHibernate?

在我的项目中,我有一个配置部分,我可以在那里添加一个属性:

NHibernate.Cfg.Configuration configuration = new NHibernate.Cfg.Configuration();

configuration.SetProperty(NHibernate.Cfg.Environment.ShowSql, "true");

希望这在某种程度上有所帮助。

【讨论】:

  • 是java,sql-output是“select *** from ***”,没有where。
  • 啊,java,我把它们弄糊涂了……select *** from *** 恐怕我帮不上忙。 (真的有三颗星,还是只是为了在 wiki 上展示它们?)
  • 别担心,还是试试吧。那些 *** 只是为了在 wiki 上显示它们;D
  • @Markus 这显然是 Java 而不是 C# :) 因为方法的名称是驼峰式而不是 PascalCase。
猜你喜欢
  • 1970-01-01
  • 2012-11-02
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-05
  • 2020-04-22
  • 2015-04-23
相关资源
最近更新 更多