| 

.NET C# Java Javascript Exception

Grails (GORM) Ersatz für Hibernate not-found="ignore"

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Grails (GORM) Ersatz für Hibernate not-found="ignore"

milkyman - 17.07.2008 11:52
Hallo,

bisher habe ich seit Grails 0.5 mit Hibernate Mappings gearbeitet. Jetzt bin ich gerade dabei auf die Hibernate Mappings zu verzichten und mit den "neuen" GORM Features (z.B. "static mapping") in den Domain-Klassen zu arbeiten. Das ganze funktioniert weitgehend nicht schlecht, nur für einen Sachverhalt habe ich noch keine Lösung gefunden.
Ich habe u.a. eine Objekt "Projekt". Wie das bei Projekten so ist, gibt es auch nochmal Unterprojekte usw. D.h. es gibt insgesamt einen Projektbaum, durch den man navigieren kann. Wie das bei einem Baum so ist, muss irgendwo die Wurzel sein und diese hat dann kein Vaterprojekt mehr. In der Datenbank habe ich an dieser Stelle für das Wurzel-Projekt eine -1 eingetragen. Ein Projekt mit ID -1 gibt es natürlich nicht. Bisher hatte ich in Hibernate dazu ein
not-found="ignore"
gesetzt. Damit kommt dann keine Fehlermeldung, wenn ein Projekt nicht vorhanden ist. Hibernate Mapping siehe unten.

Die Frage ist nun, wie kann ich das in der Domain-Klasse lösen? Ein Lazy-Loading kann den Fehler herauszögern, aber früher oder später wird das Hauptprojekt mal selektiert und dann kracht es (org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [Project#-1]).

Hat jemand eine Idee, wie ich das lösen könnte?

Bye,
Horst

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"[hibernate.sourceforge.net];
<hibernate-mapping>
    <class name="Project" table="PROJECT" catalog="zes">
    
        <id name="id" type="long">
            <column name="ID" />
            <generator class="increment" />
        </id>
        
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
        
        <many-to-one name="parentProject" class="Project" not-found="ignore" fetch="select">
            <column name="FK_PARENT_PROJECT_ID" not-null="false" />
        </many-to-one>

    </class>
</hibernate-mapping>


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Grails (GORM) Ersatz für Hibernate not-found="ignore"" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.