Среда: Java, провайдер Hibernate JPA, JPA, Oracle DB
Я пытаюсь создать собственный запрос для извлечения данных из базы данных Oracle. Один из столбцов является столбцом даты. Дата извлекается, но отметка времени выходит как 00:00:00. Тем не менее, через браузер SQL, я могу видеть дату и время. Как получить список результатов вместе со временем?
org.hibernate.Query query = ((HibernateEntityManager) entityManager).getSession().
createSQLQuery(NATIVE_QUERY).setResultTransformer(org.hibernate.transform.Transformers.ALIAS_TO_ENTITY_MAP);
query.setString(0, accountNumber);;
query.setTimestamp(1, startDate).setTimestamp(2, endTime);
query.setTimestamp(3, startDate).setTimestamp(4,endTime);
List resultList = query.list();
Сам запрос (в приведенном выше коде - NATIVE_QUERY) является обычным SQL-запросом для: «Получите мне все имена пользователей и время txn в заданном диапазоне дат, будь то новая транзакция или что-то, что изменилось в некоторой форме» ,
выберите u.first_name в качестве firstName, u.last_name в качестве lastName, tx.start_time в качестве txnTime от пользователя u, транзакцию tx, где tx.user_id = u.user_id и tx.account_number =? и (tx.start_time>? и tx.start_time <? или tx.change_time>? и tx.change_time <?) </strong>
for(Object listItem : resultList){
Map map = (Map) listItem;
Date txnTime = (Date)map.get("txnTime".toUpperCase());
//--------> NOT FETCHING THE TIME. I get the time as 00:00:00
}
Модель предметной области очень проста
@Entity
@Table(name="TRANSACTION")
@org.hibernate.annotations.Entity(
dynamicUpdate = true
)
public class Transaction{
@Id
@SequenceGenerator(name="txn_gen", sequenceName="TXN_S")
@GeneratedValue(generator="txn_gen")
@Column(name="TXN_ID")
private Long txnId;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="USER_ID", nullable=false)
private User user;
@Column(name="START_TIME", nullable=false)
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date startTime;
@Column(name="CHANGE_TIME")
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date changeTime;
}
@Entity
@Table(name="USER")
@org.hibernate.annotations.Entity(
dynamicUpdate = true
)
public class User {
@Id
@SequenceGenerator(name = "user_gen", sequenceName = "USER_S")
@GeneratedValue(generator = "user_gen")
@Column(name="USER_ID")
private Long userId;
@Column(length=500, name="FIRST_NAME")
private String firstName;
@Column(length=500, name="LAST_NAME")
private String lastName;
}