Bonsoir,
Alors voila je cherche à faire un appli de visualisation de schéma de bases de données en utilisant Hibernate.
Pour cela j'ai donc 3 entités : Table, Column et Constraint.
Mon problème vient d'une relation ManyToOne entre Constrait et Column :
	
	IllegalArgumentException occurred while calling setter of gd.app.model.Constraint.column
 Voici le fichier de mapping Column (celui pour postgresql) :
	
	1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
   |  
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 19 mars 2012 11:48:49 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
	<class name="gd.app.model.Column">
		<subselect>
			SELECT table_name as table, column_name as name, data_type
			as type
			FROM information_schema.columns
			WHERE table_schema='public'
			ORDER BY ordinal_position ASC
		</subselect>
		<composite-id>
			<key-property name="name" type="java.lang.String"
				column="NAME" />
			<key-many-to-one name="table" class="gd.app.model.Table"
				column="TABLE" />
		</composite-id>
[...........]
 
		<set name="constraints" inverse="true" lazy="true">
			<key>
				<column name="column" />
				<column name="table" />
			</key>
			<one-to-many class="gd.app.model.Constraint" />
		</set>
	</class>
</hibernate-mapping>  | 
 Et celui de Constraint :
	
	1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
   |  
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 19 mars 2012 11:48:49 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
	<class name="gd.app.model.Constraint">
		<subselect>
			SELECT c.constraint_name as name, c.table_name as table,
			c.constraint_type
			as type, cu.column_name as column,
			rc.unique_constraint_name as
			references, cu.table_name as
			references_table
			FROM
			information_schema.table_constraints c
			INNER JOIN
			information_schema.constraint_column_usage cu ON
			(c.constraint_name =
			cu.constraint_name)
			LEFT OUTER JOIN
			information_schema.referential_constraints rc ON
			(c.constraint_name =
			rc.constraint_name)
			WHERE c.constraint_schema='public'
		</subselect>
		<composite-id>
			<key-property name="name" type="java.lang.String"
				column="NAME" />
			<key-many-to-one name="column" class="gd.app.model.Table"
				column="COLUMN" />
		</composite-id>
[...........]
		<many-to-one name="column" class="gd.app.model.Column"
			fetch="join" insert="false" update="false" >
			<column name="COLUMN" />
			<column name="TABLE" />
		</many-to-one>
[...........]
 
	</class>
</hibernate-mapping>  | 
 Allez dires moi que vous avez une idée 
						
					
Partager