-->
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.  [ 3 posts ] 
Author Message
 Post subject: leere felder prüfen - notNull() - NULL-werte speichern
PostPosted: Mon Jan 16, 2006 10:42 am 
Newbie

Joined: Mon Jan 16, 2006 10:26 am
Posts: 2
Hallo,

ich arbeite mit hibernate3 auf einer postgresql datenbank. in meiner auftrags-tabelle gibt es felder für bestell-datum etc, die nach hibernate manier leer sind, sofern kein wert gespeichert wurde.

an anderer stelle in meinem programm muss ich abfragen, ob das ein oder andere datum gesetzt wurde und habe probleme mittels Criteria zu prüfen, ob ein feld leer ist oder nicht...

isNull() gibt false zurück, weil eben nicht NULL im feld steht, ebenso wenig kann ich auf eq("date", '') abfragen.

die sauberste lösung wäre wahrscheinlich die standard-werte der datumsfelder von vorn herein mit NULL zu belegen oder eben hibernate so zu konfigureieren, das es null-werte als NULL in die tabellen schreibt... bei beiden ansätzen stehe ich auf dem schlauch... :(

im property-tag gibt es keine unsaved-value angabe, was ich im übrigen sehr schade finde... wie ich hibernate dazu bewegen kann null-werte als NULL in die datenbank zu schreiben, weiss ich leider ebensowenig...

wäre net, wenn mir jemand einen hinweis geben könnte, wie ich mein problem in den griff kriegen, oder mir die passende einsprungstelle in der doku nennen kann... wahrscheinlich habe ich einfach nur was übersehen...

herzlichen dank


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 17, 2006 11:21 am 
Regular
Regular

Joined: Tue Jan 03, 2006 9:52 am
Posts: 52
Location: Zurich
Quote:
...gibt es felder für bestell-datum etc, die nach hibernate manier leer sind,

Was meinst du damit? Empty strings?
Ich nehme an, dass du in den Datums-Kolonnen den Typ DATE verwendest.
Was soll nun dort gespeichert werden wenn kein Wert angegeben wurde?
Empty string ist sicher nicht bevorzugt.
Ich wuerde null verwenden und die Felder deiner Klasse (vom Typ Calendar oder Date??) mit null initialisieren (falls kein Wert angegeben wurde).


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 17, 2006 11:35 am 
Newbie

Joined: Mon Jan 16, 2006 10:26 am
Posts: 2
hallo und danke für die Antwort...

ich habe das Problem eben doch noch lösen können.

Via Hibernate habe ich meine Daten (von Datum) als type "java.sql.Date" gemapped und in der postgreSQL 8.0 DB werden daraus Felder vom Typ "date" generiert. In diese Felder kann ich aber nicht "null" einfügen. Leere Felder sind also einfach leer.

Bei einer Query über Criteria kann ich dann die Datums-Felder nicht über Restrictions-isNotNull("datumsfeld") mit gewünschtem Ergebnis abfragen. Scheinbar wird die Angabe einfach ignoriert.

Ich habe jetzt in den Mapping-Files auf den Datentyp "org.hibernate.type.DateType" geändert und nun geht es, obwohl die nicht belegten felder in der Datenbank nach wie vor leer sind und ich auch immernoch kein "null" einfügen kann.

Warum es jetzt geht weiss ich leider nicht wirklich...

Liebe Grüße


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