Как можно сопоставить результат из собственного запроса SQL в класс Java POJO (без сущности) - PullRequest
2 голосов
/ 21 июня 2011

У меня есть простое java pojo, и это не сущность.

class MyClass {
    // fields, getter, setter and etc...
}

Также у меня есть DAO с некоторой функцией для выполнения собственного SQL-запроса (createNativeQuery)

Как сопоставить результат из собственного запроса SQL в MyClass без @Entity?

Ответы [ 4 ]

1 голос
/ 21 июня 2011

Если имена полей компонента совпадают с именами столбцов таблицы DB, вы можете использовать Spring JDBC org.springframework.jdbc.core.BeanPropertyRowMapper<T>.

Вы вызываете org.springframework.jdbc.core.simple.SimpleJdbcOperations.queryForObject(String, RowMapper<T>, Object...)) с объектом BeanPropertyRowMapper, и он вызывает все установщикиВы, используя отражение.

1 голос
/ 26 июля 2011

Если бы это был JPA, я бы использовал: Query query = getEntityManager (). CreateNativeQuery (sql.toString (), MyClass.class);

Это работает, если MyClass является EntityBean: - (

0 голосов
/ 20 апреля 2014

Вы можете использовать перенаправитель запросов EclipseLink.Следующая ссылка объясняет это.Автор также предоставил довольно общий код, который работает довольно хорошо.

http://onpersistence.blogspot.in/2010/07/eclipselink-jpa-native-constructor.html

0 голосов
/ 21 июня 2011

Вы можете просто выполнить запрос и вызвать методы получения / установки в вашем классе POJOПсевдокод:

get connection
ResultSet rs = execute query
if (rs.next()) {
  setField1(rs.getString("field1"));
  etc....
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...