# Hibernate Mapping



## Eldorado (1. Jun 2010)

Hi,
ich habe folgende, wahrscheinlich schnell zu lösende Frage:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <class name="de.mysql.User" table="user">
    <id column="id" name="id" type="integer">
      <generator class="native"/>
    </id>
    <property column="name" name="name" not-null="true" type="string"/>
    <many-to-one class="de.mysql.UserCategory" column="user_category_id" name="userCategory"/>
    <set cascade="all" lazy="true" name="settlement">
      <key column="user_id"/>
      <one-to-many class="de.mysql.Settlement"/>
    </set>
    <set cascade="all" lazy="true" name="sale">
      <key column="user_id"/>
      <one-to-many class="de.mysql.Sale"/>
    </set>
  </class>
</hibernate-mapping>
[/XML]

```
public class User extends MySqlTable {

    private String name;
    private String userCategory;
    private Set settlement;
    private Set sale;

    public String getName() {
        return name;
    }

    public String getUserCategory() {
        return userCategory;
    }

    public Set getSettlement() {
        return settlement;
    }

    public Set getSale() {
        return sale;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setUserCategory(String userCategory) {
        this.userCategory = userCategory;
    }

    public void setSettlement(Set settlement) {
        this.settlement = settlement;
    }

    public void setSale(Set sale) {
        this.sale = sale;
    }
}
```

In diesem Mapping lege ich ja quasi eine user_category_id-Spalte und einenen Verweis auf  user_category an oder? Muss bzw. kann ich in der Java-Klasse beides, d.h. user_Category und user_Category_Id abrufen?
Vielen Dank für euer bemühen.

mfg 
Eldorado


----------



## SlaterB (2. Jun 2010)

ich denke, zu diesem Mapping gehört ein Attribut UserCategory, nicht String?


----------



## Eldorado (2. Jun 2010)

Aber er bezieht sich doch in der many-to-one Beziehung auf den Namen der userCategory. Wenn ich zu Hause bin, poste ich auch mal die UserCategory-Klasse+Mapping. Wahrscheinlich habe ich da einfach nur ein Verständnisproblem. Vielen Dank schon mal!
mfg 
Eldorado


----------



## Eldorado (2. Jun 2010)

Hier sind nochmal UserCategory.java und user_category.hbm.xml:
[XML]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <class name="de.mysql.UserCategory" table="user_category">
    <id column="id" name="id" type="integer">
      <generator class="native"/>
    </id>
    <property column="name" name="name" not-null="true" type="string"/>
    <set cascade="all" lazy="true" name="user">
      <key column="user_category_id"/>
      <one-to-many class="de.mysql.User"/>
    </set>
  </class>
</hibernate-mapping>
[/XML]

```
public class UserCategory extends MySqlTable{

    private String name;
    private Set user;

    public String getName() {
        return name;
    }

    public Set getUser() {
        return user;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setUser(Set user) {
        this.user = user;
    }
}
```

Ich hoffe, das hilft mein Problem zu lösen bzw wo mein Denkfehler liegt 
mfg
Eldorado


----------



## SlaterB (2. Jun 2010)

ich bin nach wie vor für


```
public class User extends MySqlTable {
 
    private String name;
    private UserCategory userCategory;
```

funktioniert es damit? was waren jetzt deine Gründe dafür/ dagegen?
das mit dem String habe ich nicht verstanden


----------



## Eldorado (2. Jun 2010)

Danke , erst hab ich mich verlesen und dann auch noch völlig auf dem Schlauch gestanden XD


----------

