- Posted by admin on Januar 23, 2008
Manchmal ist ein Nhibernate wirklich verblüffend. Hier ein Beispiel: Eine in einem einfachen Test Szenario abgesetzte Abfrage bringt das gewünschte Ergebnis. Wird die gleiche Abfrage zum zweiten Mal ausgeführt gibt es folgendes:
SqlTypeException for a SqlDateTime overflow. SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
Hmm – eine neuer Stern am Himmel der Programmiertechniken nennt sich „Google based programming“. Diesem Prinzip folgend wurde zur Lösung folgende Suchabfrage formuliert:
multiple nhibernate queries result in SqlDateTime overflow
Bingo, der erste Treffer, ein Blogpost von „James Gregory“ mit dem Titel „NHibernate and the SqlTypeException“, erklärt das Problem Haargenau:
Nach der ersten Abfrage bekommt NHibernate die Werte aus der Tabelle, die sich nicht mit den Werten des gerade abgeholten Objekts decken. Statt einem Null, hat die DateTime Property als Default den MinValue. Ergo muss ein Fehler vorliegen, den es gerade zu rücken gilt.
NHibernate setzt also eine update Statement ab, um die Datenbank abzugleichen. Dagegen sträubt sich der SQL-Server, der ein anderes Verständnis von einem Minimum Wert für eine DateTime Feld hat, nämlich „01/01/1753 00:00“ im Gegensatz zum .NET DateTime.MinValue von „00:00:00.0000000, January 1, 0001“. Boom ein Fehler.
Die Korrektur ist, die gemappte DateTime Property Nullable zu setzen (DateTime? ..), das korrekte Mapping not-null="false" reicht nicht.
Danke James Gregory :-)
- Posted by admin on Januar 9, 2008
Irgendwie hatte ich nicht erwartet das es so einfach ist: http://code.google.com/apis/maps/signup.html besuchen und http://localhost eingeben. Das ganze funktioniert auch für Ports, also zum Beispiel: http://localhost:4441.
- Posted by admin on Januar 6, 2008
Wann ist iBatis besser als NHibernate?
IBatis Mapped Results Sets zu Objekten, während NHibernate Tabellen mapped. Macht es Sinn NHibernate und IBatis im selben Projekt zu verwenden? Mark Richards meint "Natürich" in diesem sehr kurzen, sehenswerten Video: Mark Richard iBatis vs. Hibernate
Links:
- Posted by admin on Januar 1, 2008
Ein turbulentes Jahr liegt hinter uns. Im April haben wir unsere junge Firma gegründet. Nachdem Andrej sein Studium aufgegeben und ich meinen Job bei ThinPrint gekündigt hatte war der Anfang eher zäh. Wir hatten zwar gute Ideen („wiki-to-go“), aber die Umsetzung dauerte länger als geplant. Mehrfach haben wir unsere Firmenstrategie gewechselt und unterschiedliche Projekte geprüft, begonnen und wieder verworfen.
Keine lukrative Zeit. Wir konnten aber unsere Sinne schärfen und (hoffentlich) den Grundstein von Firmenwerten und Kultur legen, der uns unserem Ziel näher bringt, mit Speak-Friend eine Unternehmung zu beginnen, die die länger existiert als Ihre Begründer.
Abschliessend können wir mit den Fakten zufrieden sein, auch wenn Platz für Verbesserung ist. Wir haben im letzten Jahr 4 Kunden gewonnen, für die wir uns freuen langfristig Dienstleistungen erbringen zu düfren. Wir sind eine strategische Partnerschaft mit einer englischen Firma eingegangen, die wir im Jahr 2008 zu beidseitigem ökonomischen Erfolg bringen möchten. Wir haben einige kleinere Kundenprojekte abgeschlossen.
Wir sind dabei eine ambitionierte Eigenentwicklung abzuschließen und haben zwei weitere in der Pipeline. Im Januar 2008 wachsen wir von zwei Personen auf fünf.
Das beeindruckteste aus meiner Perspektive, ist die Entwicklung unserer Persönlichkeiten. Das Wachstum an Wissen über erfolgreiche Projektarbeit und unternehmerische Prozesse ist enorm. Hart erarbeitet und teils bitter erlernt.
Der Arbeitsaltag macht immer noch und immer mehr Spass, verglichen mit 2006 ist es aber eine komplett neue Sportart, auch wenn ich immer noch die meiste Zeit programmieren darf :-)