-->
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: Parameter im formula Attribut des property Elements
PostPosted: Thu Apr 13, 2006 11:03 am 
Newbie

Joined: Thu Apr 13, 2006 10:42 am
Posts: 2
Hallo,

ich möchte zu einem formula Attribut eines property element einen Parameter hinzufügen. Ich hab in der Doku keinen Hinweis gefunden. Weiß jemand ob das möglich ist?

Konkret soll mein Programm für ein Objekt immer den Text in der aktullen Sprache lesen. Die Texte werden in einer eigenen Tabelle gespeichert.

Das ist ein Teil meines Mappings:

Code:
        <property name="nlsText" formula="(SELECT description from nls_text n, fruit f where f.fruit_id=n.fruit_id and iso=EN)"/>


Ich will also den IsoCode - hier auf EN - dynamisch setzen.

Vielleicht habt ihr auch andere Ideen? Allerdings will ich keine Association zwischen meinen Objekten und den übersetzten Texten aufbauen. Die Objekte sollen genau einen String als Member haben.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Apr 17, 2006 5:47 pm 
Newbie

Joined: Sat Apr 15, 2006 4:50 am
Posts: 9
Laut http://forum.hibernate.org/viewtopic.php?t=945028&highlight=formula+parameter kann man Queries in einem formula Attribut nicht parametrisieren. Gavin schlaegt die Verwendung von Filtern vor. Warum willst du keine Assoziation in deiner Entity Klasse haben? Falls du sie nur vor deiner Applikation verbergen willst, kannst du eine protected property, die die diversen Uebersetzungen enthaelt, und eine public property mit ein bisschen Logik darin erzeugen. Etwa

Code:
private Map<String, String> nlsTexts;

protected Map<String, String> getNlsTexts(){
    return nlsTexts;
}

// ... setter

public String getNlsText() {
    String isoCode = getIsoCode(); // Via static Utility class oder ThreadLocal oder wie auch immmer...
    return nlsTexts.get(isoCode);
}


... falls der Overhead die Map nlsTexts zu fuellen nicht zu gross ist (Anzahl der Uebersetzungen ueberschaubar).

Gruss,
Volker


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 19, 2006 4:53 am 
Newbie

Joined: Thu Apr 13, 2006 10:42 am
Posts: 2
Danke für den Tip ich hab das Problem mit einem subselect und einem Filter lösen können. Hier ist ein Teil des Mappings:

Code:
<subselect>
   select fruit_shop.*, fruit_shop_nls.*
   from fruit_shop_nls
   join fruit_shop on fruit_shop_nls.shop_id = fruit_shop.shop_id
</subselect>

<filter name="currentNls" condition=":iso = iso"/>


Die Assoziation wollte ich deswegen nicht haben, da ich für die Oberfläche eine spezielle View für die Anzeige von sehr vielen Daten benötige und eine einfache Liste von flachen Models von unserem Framework ohne zusätzlicher Programmierung unterstützt wird. Aber ansonsten hast du Recht - ein Map wäre auch eine Lösung.

ciao, roland


Top
 Profile  
 
 Post subject:
PostPosted: Tue Dec 12, 2006 9:58 am 
Newbie

Joined: Tue Dec 12, 2006 9:53 am
Posts: 1
hi,

ich habe genau das gleiche problem. da ich aber absolut neu bin bei hibernate, kann ich mit deinem hinweis, dass du ein subselect und einen filter angwandt hast, nicht so viel anfangen. könntest du das vll etwas genauer beschreiben, oder hast du vll eine quelle, wo ich mir das schnell anlesen kann?

hat sich erledigt. mein problem war scheinbar doch etwas anders...


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.