Ik ben sinds kort bezig om een projectje te doen in Spring + Hibernate. Na vele problemen al opgelost te hebben via Google en GOT ben ik nu bij een probleem aangekomen waar ik niet uit kom.
Ik heb twee klassen, Product en Category. Een Category kan meerdere Producten bevatten en een Product moet in een Category zitten.
Ik kan prima een Product of een Category maken, wijzigen en een overzicht opvragen, maar wat ik nu graag zou willen is een overzicht van Producten opvragen welke in een bepaalde Category zitten.
Mijn klassen zien er als volgt uit:
Zoals je kan zien bevat een Product een verwijzing naar Category en bevat Category een verwijzing naar Product in de vorm van een List.
Hierbij heb ik de volgende mappings gemaakt:
Meer code is niet nodig denk ik, maar ik kan altijd meer posten.
Probleem
Als ik de lijst met Producten opvraag van een Category zitten er meerdere lege elementen in de List welke ik terug krijg.
Soms lijkt het erop dat de lege elementen welke erin zitten de Producten zijn welke een andere Category hebben, maar soms verschijnt er ook een leeg element aan het begin van de lijst.
Ik kon op google helaas niks vinden hierover, lijkt alsof niemand anders dit probleem heeft... Helaas zou ik bijna zeggen ;-) Ook got bracht me geen uitkomst dit keer via de zoekfuntie.
Ik heb twee klassen, Product en Category. Een Category kan meerdere Producten bevatten en een Product moet in een Category zitten.
Ik kan prima een Product of een Category maken, wijzigen en een overzicht opvragen, maar wat ik nu graag zou willen is een overzicht van Producten opvragen welke in een bepaalde Category zitten.
Mijn klassen zien er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| public class Category {
private long id;
private String name;
private List<Product> products;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Product> getProducts() {
return products;
}
public void setProducts(List<Product> products) {
this.products = products;
}
} |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| package treinverzameling.domain;
public class Product {
private long id;
private String name;
private Category category;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Category getCategory() {
return category;
}
public void setCategory(Category category) {
this.category = category;
}
} |
Zoals je kan zien bevat een Product een verwijzing naar Category en bevat Category een verwijzing naar Product in de vorm van een List.
Hierbij heb ik de volgende mappings gemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <hibernate-mapping>
<class name="package.Category" table="Category">
<id name="id" column="category_id">
<generator class="native"/>
</id>
<property name="name" />
<list name="products" inverse="false">
<key column="category_id"/>
<index column="product_id"/>
<one-to-many class="package.Product"/>
</list>
</class>
</hibernate-mapping> |
code:
1
2
3
4
5
6
7
8
9
| <hibernate-mapping>
<class name="treinverzameling.domain.Product" table="Product">
<id name="id" column="product_id">
<generator class="native"/>
</id>
<many-to-one name="category" column="category_id" not-null="true"/>
<property name="name" />
</class>
</hibernate-mapping> |
Meer code is niet nodig denk ik, maar ik kan altijd meer posten.
Probleem
Als ik de lijst met Producten opvraag van een Category zitten er meerdere lege elementen in de List welke ik terug krijg.
Soms lijkt het erop dat de lege elementen welke erin zitten de Producten zijn welke een andere Category hebben, maar soms verschijnt er ook een leeg element aan het begin van de lijst.
Ik kon op google helaas niks vinden hierover, lijkt alsof niemand anders dit probleem heeft... Helaas zou ik bijna zeggen ;-) Ook got bracht me geen uitkomst dit keer via de zoekfuntie.