Ik ben een webappje aan het bouwen met behulp van spring webflow en hibernate.
Nu wil ik aan de hand van een object dat gemapt is op een tabel in een database met
org.springframework.orm.hibernate3.HibernateTemplate.findByExample() een beperkte lijst van deze entries opvragen. Ik maak dus zo'n object met een aantal velden ingevuld en de rest null.
Welk veld ik ook invul ik krijg heel mijn tabel terug en niet alleen de dingen die matchen aan wat ik heb ingevuld.
zoals je ziet gooi ik de example instance in mijn log. Als ik dan mijn logs open dan zie ik dat het object perfect doorgegeven wordt dus daar kan het al niet aan liggen.
Ik heb in de hibernate documentation hetvolgende gevonden over de creatie van criteria aan de hand van example instances
***EDIT***
Heb ondertussen uitgevist wat ze bedoelen. Alles wat een id (primary key) is van je persistent class wordt genegeerd (ook handig NOT) en associations (references naar andere tabellen dus) ook.
Heb dus handmatig criteria toegevoegd om de (composiet) key van mij class mee te laten spelen.
Is er hier een elegantere manier voor?
Hoe doe je dit dan met associaties. Mijn persistent class ( A ) behoort tot een aantal categoriën die in een andere persistent class ( B ) zijn opgeslagen. Dat resulteert dus in een collection van B in mijn class A. Hoe kan ik nu aan hibernate vragen geef mij alle A waarvan er items uit een modellijst van B voorkomen in de B lijst van die A?
Nu wil ik aan de hand van een object dat gemapt is op een tabel in een database met
org.springframework.orm.hibernate3.HibernateTemplate.findByExample() een beperkte lijst van deze entries opvragen. Ik maak dus zo'n object met een aantal velden ingevuld en de rest null.
Welk veld ik ook invul ik krijg heel mijn tabel terug en niet alleen de dingen die matchen aan wat ik heb ingevuld.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| public List<Lid> findByExample(Lid instance) {
log.debug("finding Lid instance by example");
log.debug(instance);
try {
if (instance!=null){
List<Lid> results = new LinkedList<Lid>(getHibernateTemplate().findByExample(instance));
log.debug("find by example successful, result size: "
+ results.size());
return results;
} else
return new LinkedList<Lid>(getHibernateTemplate().loadAll(Lid.class));
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
} |
zoals je ziet gooi ik de example instance in mijn log. Als ik dan mijn logs open dan zie ik dat het object perfect doorgegeven wordt dus daar kan het al niet aan liggen.
Ik heb in de hibernate documentation hetvolgende gevonden over de creatie van criteria aan de hand van example instances
Nogal vaag dus, kan iemand verduidelijken wat ze hiermee bedoelen?Version properties, identifiers and associations are ignored. By default, null valued properties are excluded.
***EDIT***
Heb ondertussen uitgevist wat ze bedoelen. Alles wat een id (primary key) is van je persistent class wordt genegeerd (ook handig NOT) en associations (references naar andere tabellen dus) ook.
Heb dus handmatig criteria toegevoegd om de (composiet) key van mij class mee te laten spelen.
Is er hier een elegantere manier voor?
Hoe doe je dit dan met associaties. Mijn persistent class ( A ) behoort tot een aantal categoriën die in een andere persistent class ( B ) zijn opgeslagen. Dat resulteert dus in een collection van B in mijn class A. Hoe kan ik nu aan hibernate vragen geef mij alle A waarvan er items uit een modellijst van B voorkomen in de B lijst van die A?
[ Voor 18% gewijzigd door redfox314 op 03-04-2008 22:55 ]