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!

Était-ce utile?

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">
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top