-->
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: Datum und Zeit in Hibernate
PostPosted: Tue Mar 04, 2008 1:52 pm 
Newbie

Joined: Fri May 25, 2007 4:37 am
Posts: 13
Location: Germany
Hallo Leute!
Beim Entwickeln einer Applikation bin ich nun schon an mehreren Stellen über Probleme mit Daten und Zeiten gestolpert.

Beispielsweise habe ich in einer Entität zwei Uhrzeiten, die den Beginn und das Ende markieren sollen. Das Ziel ist es, alle Datensätze zu holen, bei denen die aktuelle Uhrzeit zwischen Beginn und Ende liegen:
Beginn <= aktuelle Zeit <= Ende

Wenn ich die Propertys mit java.sql.Time (Java) und Time (MySQL) realisiere, kann der Wert '00:00:00', sprich Mitternacht, nicht verwendet werden, weil beim Laden eines solchen Datensatzes immer eine Exception geworfen wird.
Nun habe ich es mal mit java.util.Date (Java) und Datetime (MySQL) probiert und den Getter etwas geändert, so dass er Time zurückliefert:

Code:
@Column(name = "ada_timestart", nullable = true)
private Date timeStart = null;

public Time getTimeStart() {
   if (this.timeStart != null) {
      return new Time(this.timeStart.getTime());
   } else {
      return null;
   }
}

public void setTimeStart(Date timeStart) {
   this.timeStart = timeStart;
}


Der Wert für Mitternacht kann nun als '1970-01-01 00:00:00' gespeichert werden. Jetzt stellt sich aber die Frage wie mein Criteria-Query geändert werden muss, um die richtigen Datensätze zu erhalten. Bisher habe ich das so gemacht:

Code:
Time time = new Time(new Date().getTime());
Opening opening = (Opening) session.createCriteria(Opening.class)
   .add(Restrictions.le("start", time))
   .add(Restrictions.ge("end", time))
   .list().get(0);


Dies funktioniert aber leider nicht mehr, weil jetzt das Datum noch berücksichtigt wird.

Kennt jemand eine gute Seite, wo diese Probleme mit java.util.Date, java.sql.Date und java.sql.Time ausführlich erläutert und Best Practices gezeigt werden?

Vielen Dank im Voraus fürs Durchlesen und eure Zeit!


Top
 Profile  
 
 Post subject: Lösung
PostPosted: Wed Mar 05, 2008 2:15 pm 
Newbie

Joined: Fri May 25, 2007 4:37 am
Posts: 13
Location: Germany
Das Problem hat sich erledigt. Offenbar tritt es nur in Verwendung mit dem Connector/J 5.0.5 auf. Nach einem Update auf 5.0.8 gibt es jetzt keine Probleme mehr.

Mit der neuen Version kann nun java.sql.Time als Typ verwendet und 00:00:00 in der DB gespeichert werden.


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.