1

我遇到了有线问题。

我使用 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

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

4

2 回答 2

0

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

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

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

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

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

于 2012-10-24T15:11:49.950 回答
0

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

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

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

于 2012-10-25T08:10:08.117 回答