-->
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.  [ 2 posts ] 
Author Message
 Post subject: Intelligenter Hibernate Join?
PostPosted: Tue Sep 11, 2007 6:00 am 
Newbie

Joined: Tue Sep 11, 2007 5:57 am
Posts: 1
Hibernate version: 3
Name and version of the database you are using: Oracle 10g

Hallo,

mein erster Post und gleich eine Frage..
(ich habe das schon in im java forum gepostet bis ich auf dieses
Forum hier gestoßen bin welches mir thematisch doch etwas passender
erscheint :) )

ich migriere derzeit eine altgediente Anwendung von einer Client Applikation
hin zu einer Webanwendung mit Spring MVC und Hibernate. Dazu existiert
eine Oracle Datenbank welche in ihrer Struktur nicht angepasst (wenn nur minimal)
werden soll.

Wir haben verschiedene Benutzer deren Benutzer id in jeder Tabelle
bei jedem Datensatz mit geschrieben wird (feld user_Id). Wir haben eine Tabelle
bezeichnungen und eine Tabelle bezeichnungstexte welche einen dreiteiligen
primärschlüssel hat: bezeichnungs_id, sprache, user_id

Es existiert ein default user (id 1) welchem alle bezeichnungstexte zugeordnet sind.
Dieser default userhält die default bezeichnungstexte. wenn ein user einen eigenen
bezeichnungstext für eine Position erstellt dann soll automatisch dieser verwendet werden
und nicht der default bezeichnungstext.

in hibernate habe ich beispielsweise folgende selects:

Code:
select
  p.wert,
  p.prozent,
  b.text
from
  Position p
  join p.bezeichnung.bezeichnungstext b (<-- knackpunkt)
where
  p.user.id = 213


(nur schematisch / exemplarisch dargestellt)

jetzt möchte ich durch Hibernate Mechanismen, AOP oder sonst
irgendwie den join zum Bezeichnungstext so haben dass er mir
den default bezeichnungstext (user_id = 1) liefert wenn
kein bezeichnungstext mit einer user_id = 213 vorliegt.

überlegungen wären bisher ob wir keine joins mehr nehmen sondern
nur die bezeichnungs-id's und später die resultsets durch eine
methode jagen welche die entsprechenden bezeichnungen aus der
Datenbank holt (wär mir persönlich unrecht, fühlt sich nicht "straight forward" an).

Gibts sowas wie intelligentes Mapping (schwer zu beschreiben) bzw.
konditionales Mapping? Intelligente Stellvertreter Objekte über die ich joine
anstatt die automatisch von Hibernate generierten (eclipse hibernate tools)
und mir diese Bedingung prüfen / abfangen / erfüllen (wenn ja wie)?

schwer zu erklären ich hoffe es wird klar und jemand hat mir hier den
entscheidenden Tip...

bitte um hilfe, alle alternativen gern gesehen!

Grüße,

Pascal


Top
 Profile  
 
 Post subject:
PostPosted: Tue Sep 11, 2007 12:26 pm 
Expert
Expert

Joined: Tue Nov 23, 2004 7:00 pm
Posts: 570
Location: mostly Frankfurt Germany
Wenn Du den Wert nur lesen möchtest und Deine Abfrage durch SQL ausdrücken kannst, kannst Du diesen durch ein "formular" Attribut dieses SQL Schnipsel verwenden.

_________________
Best Regards
Sebastian
---
Training for Hibernate and Java Persistence
Tutorials for Hibernate, Spring, EJB, JSF...
eBook: Hibernate 3 - DeveloperGuide
Paper book: Hibernate 3 - Das Praxisbuch
http://www.laliluna.de


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 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.