Как преобразовать пользовательский результат запроса в класс JAVA POJO - PullRequest
0 голосов
/ 01 мая 2018

У меня сложный запрос, который извлекает данные из разных таблиц, а затем его необходимо преобразовать в JAVA POJO для отображения. Я пытался использовать трансформаторы для этого, но я получаю ошибку как «org.hibernate.PropertyNotFoundException: не удалось найти установщик для идентификатора в классе com.db.loud.dto.lem.Feed"

Если я перехожу с id на ID (CAPS), мой класс POJO работает нормально. Но это не то, как имена переменных Java.

Что здесь не так или есть лучший способ сделать это.

Ниже код из класса DAO:

    Session session = getSession();
    String sql = "select a.id, a.name, b.id, b.f1, c.f2, c.f3 from table1 a, table2 b, table3 c where ......................................";

    SQLQuery query = session.createSQLQuery(sql);
    query.setString("id", id.toString());
    query.setResultTransformer(Transformers.aliasToBean(Feed.class));
    List<LemFeed> list = query.list();

Здесь Feed - мой класс JAVA POJO:

  public class LemFeed implements Serializable{
  private String id;
  private String name;
  private String f1;
  private String f2;
  private String f3;
  private String f4;
 }

Ответы [ 2 ]

0 голосов
/ 04 августа 2018

Использовал AddScalar для того же решения проблемы.

        List<KondorRecord> kondorRecords = session.createSQLQuery(sql)
            .addScalar("facilityId", new LongType())
0 голосов
/ 01 мая 2018

С JPA вы можете указать явное имя столбца (и более) для вашего сопоставленного поля POJO, используя @Column. Пример:

@Column(name="ID")
private String id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...