Grails: LazyInitializationException – Lösungsmöglichkeiten

Die Kombination von Hibernate und komplexen Datenstrukturen bringt einige Herausforderungen mitsich und daher ist dem ein oder anderen die Exception aus dem Titel sicher geläufig. In einigen Fällen hat man an solchen Punkten eine fast fertige Anwendung und es geht an die Implementierung von Jobs oder neuen Anforderungen. Nun lassen sich diese meist nicht, oder sehr schwer, mit den vorhandenen…

Hibernate: Sprünge beim Autoincrement

So ein SequenceGenerator ist schon eine feine Sache, vorallem bei der Verwendung von Relationalen Datenbanksystemen á la Oracle. Musste man sich ohne die Vorzüge des ORM (Object-Relational-Mapping) noch mit der händischen Erstellung von Sequenzen zur Incrementierung von Werten herumschlagen, erledigt Hibernate das Ganze voll automatisch mit zwei Zeilen Code. Die Tücken der Technik In meinem letzten Projekt zeigte sich jedoch ein…

PSQLException: operator does not exist

 Nach dem Neuaufsetzen einer bestehenden Grails-Anwendung, tauchte nachfolgender Fehler während der Ansprache der Datenbank durch die Applikation auf: Caused by: org.postgresql.util.PSQLException: ERROR: operator does not exist: bigint ~~ bigint at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:437) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:257) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92) … 2 more Zunächst vermutete ich ein JDBC Treiber-Problem, jedoch konnte der Fehler nach etwas Recherche und Debugging…

Andromda Sequence per Table

Standardmäßig generiert die Hibernate Andromda Cartridge die Mappingdateien so, dass eine Sequenz für alle Tabellen genutzt wird. Eine Umstellung auf eine Sequenz für jede Tabelle ist dabei sehr einfach möglich. In der andromda.xml muss die Hibernate Cartridge einfach wie folgt angepaßt werden: <namespace name=“hibernate“> <properties> … <property name=“defaultHibernateGeneratorClass“>sequence</property> <property name=“sequenceIdentifierSuffix“>_seq</property> … </properties> </namespace> Der finale Sequzenzname ergibt sich dabei aus…