Предположим, ваш запрос " выберите идентификатор, имя пользователя, где rollNo = 1001 ".
Здесь запрос вернет объект с идентификатором и именем столбца.
Ваш класс ответа ниже:
public class UserObject{
int id;
String name;
String rollNo;
public UserObject(Object[] columns) {
this.id = (columns[0] != null)?((BigDecimal)columns[0]).intValue():0;
this.name = (String) columns[1];
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRollNo() {
return rollNo;
}
public void setRollNo(String rollNo) {
this.rollNo = rollNo;
}
}
здесь UserObject
конструктор получит массив объектов и установит данные вместе с объектом.
public UserObject(Object[] columns) {
this.id = (columns[0] != null)?((BigDecimal)columns[0]).intValue():0;
this.name = (String) columns[1];
}
Ваша функция выполнения запроса выглядит следующим образом:
public UserObject getUserByRoll(EntityManager entityManager,String rollNo) {
String queryStr = "select id,name from users where rollNo = ?1";
try {
Query query = entityManager.createNativeQuery(queryStr);
query.setParameter(1, rollNo);
return new UserObject((Object[]) query.getSingleResult());
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
Здесь вы должны импортировать следующие пакеты:
import javax.persistence.Query;
import javax.persistence.EntityManager;
Теперь ваш основной класс, вы должны вызывать эту функцию.
Сначала вы должны получить EntityManager и вызвать эту функцию getUserByRoll(EntityManager entityManager,String rollNo)
. Процедура вызова приведена ниже:
@PersistenceContext
private EntityManager entityManager;
UserObject userObject = getUserByRoll(entityManager,"1001");
Теперь у вас есть данные в этом пользовательском объекте.
Вот импорт
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
Примечание:
query.getSingleResult () возвращает массив. Вы должны сохранить положение столбца и тип данных.
select id,name from users where rollNo = ?1
запрос возвращает массив, и он [0] --> id and [1] -> name
.
Для получения дополнительной информации посетите этот ответ
Спасибо:)