2012-10-24 3 views
1

J'ai reçu un problème par câble. J'utilise le Hibernate pour trouver des entités par exemple.Hibernate Exemple ne trouve aucune instance

Malheureusement, je ne peux pas trouver une instance, même si j'ai eu environ 20000 entrées dans la Table.

Ma question est, comment déboguer ce problème.

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

retours 0

EDIT: J'ai même mis tous les n-m et 1-n reations à null

+0

btw, qu'est-ce que Restrionations? –

+0

Une faute d'orthographe de l'idiot appelé "Peter Rader" –

Répondre

0

Vous exécutez Query By Example, ce qui signifie que les propriétés de l'instance Puppy p génèrent la requête correspondante, de sorte que le jeu de résultats correspond à l'exemple.

Je suppose qu'il existe des propriétés non nulles dans votre instance de Puppy. Le moyen le plus simple de déboguer est d'activer la trace SQL dans Hibernate, afin de connaître le SQL généré et, par conséquent, de savoir quels sont les critères de la requête, et donc de savoir quel champ dans l'exemple d'instance provoque le problème.

+0

J'ai obtenu une propriété nommée "char sex" ce que dident a été imprimé à la console. char ne peut être null

0

D'abord, System.out.println ressemble à C#? Alors NHibernate?

Dans mon projet, j'ai une section de configuration et je peux ajouter une propriété là-bas:

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

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

Espérons que cela aide à someway.

+0

est java, sql-sortie est "sélectionnez *** de ***" sans où. –

+0

Ahh java, je les ai confondus dans mon esprit ... 'choisis *** de ***' J'ai peur que je ne puisse pas être plus utile. (y a-t-il vraiment des étoiles triples, ou est-ce juste pour les montrer sur le wiki?) – Markus

+0

ne vous inquiétez pas, bon essai quand même. Ces *** sont juste pour les montrer sur le wiki; D –

Questions connexes