Composition de cartographie en mybatis
Question
Je vais avoir des problèmes avec un mappage dans mybatis pour Java et apprécierait un peu d'aide. Ma structure de classe est comme ci-dessous:
//Getters/setters omitted for clarity
class Foo
{
int id;
Bar bar;
}
class Bar {
String x;
int y;
}
Mon tableau se présente comme suit -. À-dire qu'il est dénormalisés de la structure de classe
create table foo_bar (
id int,
x varchar,
y int
);
paramètres Mon travail insert déclaration est capable de dénormaliser l'aide (bar.x, bar.y).
<insert id="insert" parameterType="foo">
<![CDATA[
insert into foo_bar
(id, x, y) values
(#{x}, #{bar.x}, #{bar.y})
]]>
</insert>
Alors, le problème:
Quand j'exécute mes sélection, je voudrais l'objet résultant pour être une instance de Foo qui a une référence au bar.
Je ne pense pas que je peux utiliser un gestionnaire de type plus que cela fonctionne sur une seule colonne, et et d'association ne semble pas logique puisque « Bar » est pas une entité explicitement représentée dans la base de données via une relation de clé étrangère .
Quelqu'un peut-il me montrer le chemin recommandé de le faire s'il vous plaît?
Merci!
La solution
Avez-vous essayé d'utiliser la définition de resultMap dans votre ibatis sqlmap?
<resultMap id="foobar-result" class="Foo">
<result property="id" column="id"/>
<result property="bar.x" column="x"/>
<result property="bar.y" column="y"/>
</resultMap>
puis en vous sql simplement référence à la resultMap:
<select id="getFooBar" resultMap="foobar-result">