Search the FirstSpirit Knowledge Base
Hallo zusammen,
ich habe ein Problem bei meinem Datenquellenfilter.
Ich habe die Parameter "von" auf 01.01.2010 und "bis" auf 31.12.2010 gesetzt (mit Uhrzeit irgendwas. Ist hier uninteressant)
In den Datenquellen befindet sich ein Datensatz mit dem Datum von heute (11 Uhr irgendetwas), welcher jedoch nicht angezeigt wird.
Ich habe daraufhin den Filter nochmals überprüft, jedoch macht dies keinen Unterschied!
<QUERY entityType="news">
<FILTERPARAM parameter="bis" datatype="java.util.Date" value="1293806580000"/>
<FILTERPARAM parameter="von" datatype="java.util.Date" value="1262357040000"/>
<AND>
<GTE attribute="date" parameter="von"/>
<LTE attribute="date" parameter="bis"/>
<LTE attribute="date" datatype="de.espirit.common.Today" value="1288738800000"/>
</AND>
</QUERY>
any ideas?!?
Prüft today vllt. auf 0:00Uhr?!?
de.espirit.common.Today ist heute um Mitternacht, also im Moment 04.11.2010 00:00:00.000 Uhr.
Wenn der Datensatz das Datum veon heute und eine Uhrzeit größer als Mitternacht hat, wird er nicht angezeigt.
de.espirit.common.now hingegen gibt den aktuellen Zeitpunkt des Generierungsstarts an, also im Moment 10:43 Uhr
wird es mit de.espirit.common.now besser ? Wir haben hier auch schon die Erfahrung gemacht, dass die Uhrzeit sehr wohl eine Rolle spielt, auch wenn man glaubt, man prüft nur den Tag. Eine richtige Lösung dafür haben wir bislang auch nicht gefunden.
de.espirit.common.Today ist heute um Mitternacht, also im Moment 04.11.2010 00:00:00.000 Uhr.
Wenn der Datensatz das Datum veon heute und eine Uhrzeit größer als Mitternacht hat, wird er nicht angezeigt.
de.espirit.common.now hingegen gibt den aktuellen Zeitpunkt des Generierungsstarts an, also im Moment 10:43 Uhr
Na super, da erzähl ich meinen Redakteuren, sie müssten künftig nur noch auf den Tag und nicht mehr auf die Uhrzeit achten! Und wenn ich die Eingabekomponente auf den mode "date" umstelle, funktioniert es dann? Ich will das jetzt ungern ausprobieren, da wir gestern live gegangen sind! 😕
Wenn Sie auf den mode="date" umstellen, dann wird die Uhrzeit als 00:00 Uhr gespeichert. Das gilt aber natürlich nur ab dem Zeitpunkt der Änderung.
ACHTUNG: Mit dem mode="date" kann nicht mehr in Spalten vom Typ Datum gespeichert werden, nur noch in Spalten vom Typ Editor oder Long!
Kann ich dann auch noch nach Datum sortieren?
Sprich wird dann in dem z.B. Long der Timestamp (z.B. 08.11.2010 00:00 Uhr) als Zahl abgespeichert?
rbitdd schrieb:
Sprich wird dann in dem z.B. Long der Timestamp (z.B. 08.11.2010 00:00 Uhr) als Zahl abgespeichert?
Ja, wird er. Und zwar normalisiert zur GMT.
Lange ist's her, aber ich komme heute erst wieder dazu.
Also, ich habe jetzt in meinem DB-Schema das alte Feld "date" in "date_alt" umbenannt und ein neues Feld "date" vom Typen "long" (not null) definiert, die Eingabemaske um ein entsprechendes Feld erweitert (mode="date") und möchte jetzt die ganzen Daten nachpflegen.
Jetzt bekomme ich folgende Fehlermeldung:
Attribute news.date not synced!
Client Version: 4.2.219.38784
Java Version: 1.6.0_22 Sun Microsystems Inc.FSVersion=4.2.219.38784#1810;JDK=1.6.0_22 32bit Sun Microsystems Inc.;OS=Windows XP 5.1 x86;Date=01.12.2010 13:12:42
java.lang.IllegalStateException: Attribute news.date not synced!at de.espirit.or.impl.EntityImpl.getOldValue(EntityImpl.java:882)
at de.espirit.or.impl.EntityImpl.setValue(EntityImpl.java:774)
at de.espirit.or.impl.EntityImpl.setValue(EntityImpl.java:704)
at de.espirit.or.impl.EntityImpl.setValue(EntityImpl.java:194)
at de.espirit.firstspirit.store.access.contentstore.ContentUtil.setValue(ContentUtil.java:296)
at de.espirit.firstspirit.store.access.contentstore.ContentUtil.storeData(ContentUtil.java:222)
at de.espirit.firstspirit.client.gui.tree.store.contentstore.AbstractGuiXmlPanel.save(AbstractGuiXmlPanel.java:440)
at de.espirit.firstspirit.client.gui.tree.store.contentstore.ContentGuiXmlPanel.persist(ContentGuiXmlPanel.java:338)
at de.espirit.firstspirit.client.gui.tree.store.contentstore.ContentGuiXmlPanel.save(ContentGuiXmlPanel.java:311)
at de.espirit.firstspirit.client.gui.tree.store.contentstore.ContentGuiXmlPanel$GuiXmlToolbar$2.actionPerformed(ContentGuiXmlPanel.java:484)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at de.espirit.firstspirit.common.gui.StoreHoverButton.fireActionPerformed(StoreHoverButton.java:96)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.defaultDispatchEvent(AWTDispatchingEventQueue.java:130)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue._dispatchEvent(AWTDispatchingEventQueue.java:115)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.dispatchEvent(AWTDispatchingEventQueue.java:108)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Das es ein "oldValue" nicht gibt ist verständlich, aber wie kann ich diesen Fehler umgehen?
Ist das Schema schon gespeichert? Diese Meldung sollte nur kommen, wenn das Schema nach der Umbennung noch nicht gespeichert ist und in der Datenbank noch keine entsprechende Spalte angelegt wurde.
Gespeichert und entsperrt.