Hibernate - Problem bei Mapping

Status
Nicht offen für weitere Antworten.

y0dA

Top Contributor
Hi!
Also ich habe 2 Tabellen:
Code:
Client
Personal_Name
Nun ist es so dass Client einen FK von Personal_Name hat und es hierbei auch nur einen Personal_Name zu einem Client geben kann.

Wie realisiere ich hierbei das Mapping?

Habe es wie folgt versucht (jedoch wird dann beim speichern eines Client Objektes der FK zu Personal_Name nicht gesetzt!):

Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
	package="org.pcd.wam.gegenstandsbereich.tmcHibernate.model.web">
	<class name="Client" table="CLIENT">
		
		<id name="id" type="integer" column="CL_ID">
			<generator class="increment" />
		</id>
		<many-to-one name="contactDetail"
			class="org.pcd.wam.gegenstandsbereich.tmcHibernate.model.locating.ContactDetail"
			column="CL_CD_ID" lazy="false" />
		<many-to-one name="organisation"
			class="org.pcd.wam.gegenstandsbereich.tmcHibernate.model.locating.Organisation"
			column="CL_O_ID" lazy="false" />
		<one-to-one name="personalName"
			class="org.pcd.wam.gegenstandsbereich.tmcHibernate.model.web.PersonalName"
			lazy="false">
		</one-to-one>
	</class>
</hibernate-mapping>

Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
	package="org.pcd.wam.gegenstandsbereich.tmcHibernate.model.web">
	<class name="PersonalName" table="PERSONAL_NAME">
		
		<id name="id" type="integer" column="PN_ID">
			<generator class="increment" />
		</id>
		<property name="forename" type="string" column="PN_FORENAME" />
		<property name="surname" type="string" column="PN_SURNAME" />
	</class>
</hibernate-mapping>
 
S

SlaterB

Gast
schreib noch cascade="all" dazu,
oder irgendeines der cascades, suche danach
 

y0dA

Top Contributor
Code:
cascade="all"
Bringt keine Änderung!!

Kann es sein dass
Code:
<one-to-one name="personalName" 
         class="org.pcd.wam.gegenstandsbereich.tmcHibernate.model.web.PersonalName" 
         lazy="false">
Falsch ist?

Also mit folgendem funktioniert es, nur ist das dann keine 1:1 Beziehung?!
Code:
<many-to-one name="personalName" class="PersonalName"
			column="CL_PN_ID" lazy="false" />

Also um zut DB zurückzukommen, die Tabelle Client besitzt den FK der Tabelle Personal_Name. Personal_Name weiß nichts von Client!

Welche Variante ist nun richtig?
 

byte

Top Contributor
Du musst bei OneToOne natürlich auch angeben, über welche Spalten der Join passieren soll. Wenn das jeweils über den PK passieren soll, gehts mit @PrimaryKeyJoinColumn. Ansonsten musst Du halt die @JoinColumn angeben, also den FK. KA wie das genau in der XML heisst, nutze nur Annotations. Das steht sonst aber auch in der Hibernate Doku beschrieben.

PS: Mit Cascade.ALL wäre ich eher vorsichtig. Da können schnell mal zuviele Daten gelöscht werden. ;)
 

y0dA

Top Contributor
byto hat gesagt.:
Du musst bei OneToOne natürlich auch angeben, über welche Spalten der Join passieren soll. Wenn das jeweils über den PK passieren soll, gehts mit @PrimaryKeyJoinColumn. Ansonsten musst Du halt die @JoinColumn angeben, also den FK. KA wie das genau in der XML heisst, nutze nur Annotations. Das steht sonst aber auch in der Hibernate Doku beschrieben.

PS: Mit Cascade.ALL wäre ich eher vorsichtig. Da können schnell mal zuviele Daten gelöscht werden. ;)

Denke du meinst?
Code:
<one-to-one name="personalName"
			class="org.pcd.wam.gegenstandsbereich.tmcHibernate.model.web.PersonalName"
			lazy="false" cascade="all" foreign-key="CL_PN_ID" />

Damit geht es, nur wenn ich nun einen Datensatz des Typs Client löschen möchte, muss ich auch aus der Personal_Name Tabelle den Wert löschen? Welches cascade würde passen (save-update-delete --> gibts das?)
 

byte

Top Contributor
Es gibt ein entsprechendes Remove Cascade. Musst Du mal in die Doku schauen, wie das genau für die XML heisst. Die Begriffe sind bei den Annotations etwas anders als in der XML. Du kannst dann aber eigtl auch direkt Cascade all nehmen.
 

y0dA

Top Contributor
Ok, danke.

Naja leider wird mit:
Code:
<one-to-one name="personalName" 
         class="org.pcd.wam.gegenstandsbereich.tmcHibernate.model.web.PersonalName" 
         lazy="false" cascade="all" foreign-key="CL_PN_ID" />
Leider doch nicht der Fremdschlüssel mitgespeichert wenn ich einen Client speichere.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Hibernate Mapping Problem Datenbankprogrammierung 3
F Hibernate Mapping problem Datenbankprogrammierung 2
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
P Lazy-Fetchig und Session-Problem mit Hibernate Datenbankprogrammierung 4
C Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. Datenbankprogrammierung 3
C Hibernate Property-Problem Datenbankprogrammierung 5
c_sidi90 Hibernate Problem Table doesnt excist Datenbankprogrammierung 8
I Hibernate: Composite Foreign Key Problem Datenbankprogrammierung 14
K Hibernate + MySQL Problem... Datenbankprogrammierung 2
M Problem mit Hibernate und Named Query Datenbankprogrammierung 1
M Problem mit Hibernate und Access Datenbankprogrammierung 9
E Hibernate Problem bei bidirektionaler 1:n Verbindung Datenbankprogrammierung 2
G Hibernate Instrumentation Problem Datenbankprogrammierung 5
ARadauer Hibernate und HSQL DB Problem Datenbankprogrammierung 4
K org.hibernate.MappingException Problem Datenbankprogrammierung 2
G Problem mit neuer Hibernate Library und SLF4J Logging Datenbankprogrammierung 5
G [Hibernate] Problem mit LEFT JOIN Datenbankprogrammierung 7
GilbertGrape hibernate: Problem mit OneToMany Datenbankprogrammierung 4
F Hibernate Problem Datenbankprogrammierung 4
Y Hibernate - Problem bei save Datenbankprogrammierung 22
F Hibernate Problem Datenbankprogrammierung 5
M Problem mit Hibernate und JDBC Datenbankprogrammierung 2
N Hibernate & hsqldb: Problem bei db-update Datenbankprogrammierung 7
W Hibernate Update Problem Datenbankprogrammierung 3
O Update-Problem mit Hibernate-Framework Datenbankprogrammierung 5
krgewb Hibernate: Fremdschlüssel wird nicht erzeugt Datenbankprogrammierung 2
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
I Hibernate Predicate mit IN Clause "Unaware how to convert value to requested type" Datenbankprogrammierung 0
T org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: ..., could not initialize proxy - no Session Datenbankprogrammierung 5
T Realisierungsvorschläge Hibernate SQL Datenbankprogrammierung 1
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Tabellen-Erzeugung via Hibernate ignoriert 'CascadeType' settings Datenbankprogrammierung 1
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
damike84 Hibernate: persistieren eines Graphen Datenbankprogrammierung 2
N Hibernate Entitäten bei Selects aus 2 Tabellen Datenbankprogrammierung 7
OnDemand Hibernate Realationen Datenbankprogrammierung 7
OnDemand Hibernate ManyToOne Datenbankprogrammierung 5
D Hibernate oneToMany Syntaxfehler Datenbankprogrammierung 3
D Hibernate Error: NoSuchMethodError Datenbankprogrammierung 4
D hibernate mit postgreSQL Datenbankprogrammierung 3
S MySQL Hibernate: Fehler bei Verwendung von 2 unterschiedlichen Enumration Datenbankprogrammierung 3
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
OnDemand Hibernate OneToMany ManyToOne Datenbankprogrammierung 61
J Hibernate One-To-One mit Where Klausel Datenbankprogrammierung 6
L hibernate.cfg.xml Could not parse configuration Datenbankprogrammierung 0
L H2 Hibernate definieren? Datenbankprogrammierung 1
T JPA Mapping Enum (hibernate 5) Datenbankprogrammierung 1
H In hibernate.cfg.xml schreiben und auslesen Datenbankprogrammierung 0
K Hibernate: Ein Fluch Datenbankprogrammierung 3
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
K Eclipse: JBoss Hibernate Tool: Kein Zugriff auf Datenbank Datenbankprogrammierung 5
S JpaRepositories & Hibernate: ungewolltes trim() in findBy Datenbankprogrammierung 7
S MySQL hibernate exception: illegal state exception : entityManagerFactory is closed Datenbankprogrammierung 5
S Hibernate: Verschiedene Klassen zurückgeben. Datenbankprogrammierung 2
looparda Architektur für JPA Hibernate Umstieg Datenbankprogrammierung 14
perlenfischer1984 Hibernate mit final members Datenbankprogrammierung 3
perlenfischer1984 Java Objecte speichern mit Hibernate ? Datenbankprogrammierung 2
N SQLite Hibernate und Aufruf von Funktion SELECT last_insert_rowid() Datenbankprogrammierung 2
N Sqlite3 und Hibernate Datenbankprogrammierung 3
A Hibernate Cache leeren Datenbankprogrammierung 4
I MySQL Hibernate zu viele Queries Datenbankprogrammierung 2
Psypsy Hibernate / JPA erkennen von schon gespeicherten Objekten Datenbankprogrammierung 4
Psypsy Hibernate / JPA OneToOne MappedBy Frage Datenbankprogrammierung 2
J Hibernate + DTOs - DTOs in DAOs verwenden? Datenbankprogrammierung 1
S Hibernate-Konfiguration : Unverständliche Ausgabe beim Ausführen Datenbankprogrammierung 0
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
J Hibernate + HSQL embedded Datenbankprogrammierung 2
P Hibernate Einstieg Datenbankprogrammierung 5
C Hibernate und createQuery Datenbankprogrammierung 2
V kennt jemand empfehlenswerte online tutorials zur Hibernate ? gerne auch englisch. Datenbankprogrammierung 4
G H2 Hibernate - wie joins machen Datenbankprogrammierung 1
D Hibernate: Zustand eines Objekts erkennen? Datenbankprogrammierung 0
D Unterschiede Hibernate Vs. Java Persistence API Datenbankprogrammierung 8
I Hibernate / JPA Index hinzufügen Datenbankprogrammierung 1
X Hibernate Cache Verständnisproblem Datenbankprogrammierung 0
T Hibernate und inner class Datenbankprogrammierung 0
K n:m Tabellen mit Hibernate erstellen Datenbankprogrammierung 1
T Hibernate DAO gute Tutorials/Bücher gesucht Datenbankprogrammierung 0
C Hibernate: could not resolve property Datenbankprogrammierung 1
J Plug-In-Framework für Hibernate-Klassen Datenbankprogrammierung 0
M Hibernate - Save Child wenn nötig Datenbankprogrammierung 10
M DAO's + Hibernate Theorie Datenbankprogrammierung 4
T Hibernate, HSQLDB und UNIQUE Datenbankprogrammierung 2
F Hibernate - verschiedene Schemen Datenbankprogrammierung 7
D Hibernate SaveOrUpdate Exception Datenbankprogrammierung 2
D Hibernate CreateQuery ohne Result Datenbankprogrammierung 7
E MySQL Hibernate mit JaxWS führt zu LazyInitialization Exception Datenbankprogrammierung 8
L Einarbeitung in Hibernate -> wenn gute SQL Kenntnisse vorhanden? Datenbankprogrammierung 2
B DB2 Hibernate findet Datenbank nicht Datenbankprogrammierung 18
K JPA / Hibernate Annotations Datenbankprogrammierung 4
M JPA / Hibernate mit Postgres DB Datenbankprogrammierung 3
P JSF + H2 + TomEE + Hibernate/JPA Datenbank wird nicht angelegt Datenbankprogrammierung 3
E MySQL Hibernate ( Anfänger ) Datenbankprogrammierung 3
J Hibernate Select auf Parameterliste Datenbankprogrammierung 3
P Oracle Hibernate - Oracle-VarChar-Index wird nicht genutzt Datenbankprogrammierung 3
M Hibernate Foreign Key definieren Datenbankprogrammierung 4
M Abstrakte Klassen Hibernate Datenbankprogrammierung 4
D Mit Hibernate (mit Annotation) auf Views zugreifen Datenbankprogrammierung 2

Ähnliche Java Themen


Oben