Gabriel: Hibernate: hbm.xml Referenz zwischen zwei Projekten

Hallo,

wir haben zwei Eclipse Java Projekte. In beiden Projekten befindet sich jeweils eine hbm.xml in der das Hibernate Mapping definiert ist.

Nun muss ich in einer hbm.xml (Projekt B) auf eine Entity der anderen hbm.xml (Projekt A) referenzieren.

Konkret sieht das Mapping so aus:

class  name="projectB.Payer">

	<id name="organizationId">  
		<generator class="foreign" >  
			<param name="property">organizationId</param>  
		</generator>  
	</id>  
	<one-to-one name="organizationId" class="projectA.Organization"/>  

Allerdings erhalte ich folgende Exception:

Caused by: org.hibernate.MappingException: persistent class not known: projectA.Organization

PS: die Projektstruktur ist vorgegeben, ebenso wie das Datenbank-Desin.

Gruß

  1. Servus,

    [...]
    Nun muss ich in einer hbm.xml (Projekt B) auf eine Entity der anderen hbm.xml (Projekt A) referenzieren.

    Konkret sieht das Mapping so aus:

    class  name="projectB.Payer">

      <id name="organizationId">  
      	<generator class="foreign" >  
      		<param name="property">organizationId</param>  
      	</generator>  
      </id>  
      <one-to-one name="organizationId" class="projectA.Organization"/>  
    

    Allerdings erhalte ich folgende Exception:

    Caused by: org.hibernate.MappingException: persistent class not known: projectA.Organization

    Die Projektstruktur in Eclipse ist für Hibernate irrelevant. Wichtig ist nur die Packagestruktur. Du musst also das vollqualifizierte Package angeben und zusätzlich muss die Klasse, auf die referenziert wird, auch im Classpath vorhanden sein. Dazu kann das Projekt A dem Projekt B als Abhängigkeit hinzugefügt werden: Kontextmenü des Projekts B -> Properties -> Java Build Path -> Projects -> Add...
    Da Eclipse aber vermutlich nicht die Zielausführungsplattform ist, musst Du natürlich im Zielsystem auch dafür sorgen, dass die Projekte bzw. die daraus entstehenden JARs beide im Classpath sind, damit Hibernate die gemappten Klassen finden kann.

    PS: die Projektstruktur ist vorgegeben, ebenso wie das Datenbank-Desin.

    Von wem ist die Projektstruktur vorgegeben. Wenn sie vermurkst ist, sollte man in meinen Augen lieber darüber nachdenken, als über Umwege, wie man mit vermeintlich fixen Vorgaben ans Ziel kommt. Was wollt Ihr denn wirklich machen? Vielleicht ist das Vorgehen nicht das beste.

    Peter