Вложенное отображение объекта с использованием аннотаций в Mybatis - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть POJO, как это

 public class Application
{
  private String dcn;
  private Party applicant;
  private Date createdDateTime;
  private NamedValue[] flags;
  // containing getter and setters
  }
public class Party
{
  private String lastName;
  private String rfc;
  // containing getter and setters..
  }

И мои столбцы таблицы ..

dcn,applicantLastName,applicantRFC,createdDateTime,flag

все они типа varchar.Я использую аннотации для получения данных из вышеприведенной таблицы и установки их в POJO, используя приведенный ниже запрос.

@Select("SELECT dcn,applicantLastName,applicantRFC,createdDateTime,flag FROM DnA_Application WHERE dcn=#{dcn}")
  List<Application> getByProc(int proc);

Я не получаю данные для компонента EJB из таблицы, используя вышеуказанную конфигурацию. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 10 декабря 2018

Нет способа отобразить результат объединения, используя аннотации.Это не поддерживается в mybatis.Вот цитата из документации :

Вы заметите, что сопоставление соединений не поддерживается через API аннотаций.Это связано с ограничением в аннотациях Java, которое не допускает циклические ссылки

Один из способов сделать отображение - определить карту результатов в xml и ссылаться на нее с помощью @ResultMap.

mapper.xml:

<resultMap id="ApplicationResultMap" type="Application" autoMapping="true">
   <id property="dcn" column="dcn"  />
   <association property="party" javaType="Party" resultMap="PartyResultMap" columnPrefix="applicant"/>
</resultMap>

В интерфейсе картографа:

@Select("SELECT dcn,applicantLastName,applicantRFC,createdDateTime,flag FROM DnA_Application WHERE dcn=#{dcn}")
@ResultMap("ApplicationResultMap")
List<Application> getByProc(int proc);
...