# Hibernate: wie @ManyToOne Referenz auf eigene Klasse?



## Guest (3. Dez 2008)

Hi,

hoffe der Titel war nicht ganz so scheiße gewählt ^^

Ich möchte gern einen Kategorie Baum in meiner Anwendung anbieten.
Eine Kategorie kann dabei X Unterkategorien haben - die wiederrum X Unterkategorien ... etc. pp.

Da in dem Baum oft editiert wird, dachte ich mir ich löse die Zuordnung über ein "PARENT_ID" Feld in der DB.
Das ganze möchte ich nun in Hibernate Umsetzen. Habe dazu folgende Klasse:

```
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table(name = "categories")
public class Categorie
{

	private Integer id = -1;
	private String name = null;
	
	private List<Categorie> subCategories = null;
	
	public Categorie()
    {
    }

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	public Integer getId()
    {
    	return id;
    }

	public void setId(Integer pId)
    {
    	id = pId;
    }

	public String getName()
    {
    	return name;
    }

	public void setName(String pName)
    {
    	name = pName;
    }

	@ManyToOne(optional = true)
	@JoinColumn(name = "parent_id")
	public List<Categorie> getSubCategories()
    {
	    return subCategories;
    }
	
	public void setSubCategories(List<Categorie> pSubCategories)
    {
	    subCategories = pSubCategories;
    }
	
	@Transient
	public void addSubCategorie(Categorie pCategorie)
	{
		if(!subCategories.contains(pCategorie))
			subCategories.add(pCategorie);
	}
	
	@Override
	public String toString()
	{
	    return name;
	}
```

Als Fehlermeldung bekomme ich nun:


> Initial SessionFactory creation failed.org.hibernate.AnnotationException: @OneToOne or @ManyToOne on Categorie.subCategories references an unknown entity: java.util.List



Kann mir jmd. Verraten wie ich das Problem gelöst bekomme ?! Hab absolut nix gefunden über Google :-/[/quote]


----------



## maki (3. Dez 2008)

```
@ManyToOne(optional = true) 
   @JoinColumn(name = "parent_id") 
   public List<Categorie> getSubCategories()
```
Sollte wohl ein @OneToMany sein anstatt umgekehrt.


----------

