-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Author Message
 Post subject: Problem bei der Anpassung einer Mapping-Datei
PostPosted: Thu May 10, 2007 5:50 am 
Newbie

Joined: Thu May 10, 2007 5:40 am
Posts: 2
Hallo Leute!

ich bin recht neu in Hibernate und habe ein Problem, den ich nicht so recht lösen kann. Zunächst erkläre ich den aktuellen Stand und meine Frage befindet sich weiter unten.

Ich habe drei DB-Tabellen, wobei die ersten beiden Stammdaten enthalten ist
und die letzte als Mapping-Tabelle für beide Stammdaten-Tabellen steht.

CREATE TABLE IF NOT EXISTS MASTERDATA_NO1
(
id bigint not null,
description varchar(255) not null,
primary key (id)
);

CREATE TABLE IF NOT EXISTS MASTERDATA_NO2
(
id bigint not null,
description varchar(255) not null,
primary key (id)
);

CREATE TABLE IF NOT EXISTS MAPPING_MD1_MD2
(
FK_MD1_ID bigint not null,
FK_MD2_ID bigint not null,
primary key (FK_MD1_ID, FK_MD2_ID)
);

Meine Mapping-Datei zu Hibernate sieht folgt aus:
....
<class name="Masterdata1" table="masterdata_no1" >

<id name="id" column="id">
<generator class="increment"/>
</id>

<property name="description" column="description" />

<set name="md2" table="mapping_md1_md2">
<key column="FK_MD1_ID"/>
<many-to-many class="Masterdata2" column="FK_MD2_ID" />
</set>

</class>
..

Meine Java-Klassen sehen so ...

package at.plate.michael.hibernate.valueobject;

import java.util.HashSet;
import java.util.Set;

public class Masterdata1 {
//properties
private int id;
private String description;
private Set<Masterdata2> md2 = new HashSet<Masterdata2>();

//getter and setter for properties
public String getDescription() { return description; }
public int getId() { return id; }
public void setDescription(String description) { this.description =
description; }
public void setId(int id) { this.id = id; }
public Set<Masterdata2> getMd2() { return md2; }
public void setMd2(Set<Masterdata2> md2) { this.md2 = md2; }
}

... und so ...

package at.plate.michael.hibernate.valueobject;

public class Masterdata2 {
//properties
private int id;
private String description;

//getter and setter for properties
public String getDescription() { return description; }
public int getId() { return id; }
public void setDescription(String description) { this.description =
description; }
public void setId(int id) { this.id = id; }
}

... aus.


Bis jetzt läuft das ganze System perfekt. Sprich, ich bekomme Masterdata1
Objekte mit Sets an Masterdata2 Objekten.



Ich habe die Mapping-Tabelle in der Datenbank um eine weitere Spalte erweitert und möchte den Wert, der darin steht, zusätzlich an Masterdata2 mitgeben.

Jetzt möchte ich gerne wissen, wie ich dies in der Mapping-Datei von
Hibernate eintragen muss?

Im Posting Anfängerfrage hab ich ein ähnliches Problem gelesen, aber die Lösung sah so aus, dass eine weitere Klasse angelegt werden muss und dies möchte ich nicht gerne machen.

Vielen Dank im Voraus.
Michael Plate


Top
 Profile  
 
 Post subject:
PostPosted: Thu May 10, 2007 8:17 am 
Newbie

Joined: Tue May 08, 2007 4:35 am
Posts: 8
Dafür gibt es im Maapping das Tag entity-name. Schau doch mal bei Mapping a class more than once in der Doku nach ;-)


Top
 Profile  
 
 Post subject:
PostPosted: Fri May 11, 2007 5:02 am 
Newbie

Joined: Thu May 10, 2007 5:40 am
Posts: 2
Hallo john_difool,

vielen Dank für deine schnelle Antwort. Ich glaube, dass entity-name schon der richtige Weg ist. Allerdings habe ich generelle Probleme mit der Umsetzung und bräuchte ein konkretes Beispiel, wie ich dies umsetzen kann.

Bisher möchte er in der zweiten class definition ein ID-Tag mit Generator haben. Teilweise jammert er mit insert="false" ...

Vielleicht sitze ich schon zu lange davor um das Problem wirklich erkennen zu können. ;-)

Kannst du mir mit weiteren Tipps helfen.
Vielen Dank und viele Grüße

Michael


Top
 Profile  
 
 Post subject:
PostPosted: Thu May 24, 2007 7:38 am 
Newbie

Joined: Tue May 08, 2007 4:35 am
Posts: 8
Das konkrete Beispiel zeigt doch die Doku. Du musst für beide Entities das komplette Mapping, also jedes Property mit angeben!


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.