2010-11-26 25 views
1

Je suis à la recherche de la solution de la situation suivante. Disons que j'ai un objet de gestion Vecteur référençant la classe/structure Point.Enregistrement de la propriété sur plusieurs colonnes à l'aide d'iBatis

 
class Vector{ 
int id; 
Point begin; 
Point end; 
} 

class Point { 
int x; 
int y; 
} 

Ce que je veux faire est de sauvegarder le début et la fin de la même table que le vecteur lui-même.

 
table Vectors { 
int id; 
int begin_x; 
int begin_y; 
int end_x; 
int end_y; 
} 

Je le sais par le monde comme Hibernate Mapping de composants, mais je ne pouvais pas trouver concept similaire pour iBatis. Existe-t-il un moyen d'exprimer cette fonctionnalité dans les fichiers de mapping iBatis?

Répondre

0

Dans votre DAO, supposons que vous utiliserez (g/s) Etters sur des objets

public void saveVector(Vector v) throws DataAccessException 
    { 
     Map params = new HashMap(); 
     params.put("id",new Integer(v.id); 
     params.put("begin_x",new Integer(v.begin.x); 
     params.put("begin_y",new Integer(v.begin.y); 
     params.put("end_x",new Integer(v.end.x); 
     params.put("end_y",new Integer(v.end.y); 
     getSqlMapClientTemplate().insert("Vectors.insertVectors", params); 
    } 

dans le fichier de mappage

<insert id="insertVectors" parameterClass="java.util.Map"> 
     INSERT INTO 
     Vectors(id,begin_x,begin_y,end_x,end_y) 
     VALUES 
     (#id#,#begin_x#,#begin_y#,#end_x#,#end_y#) 
    </insert>