【发布时间】:2017-10-14 17:58:10
【问题描述】:
我正在尝试将 SpringBoot 中的本机查询返回到 DTO。
但是,我的 SessionFactory 正在返回 null。
我在 SO 中阅读了很多问题,但似乎没有人提供帮助。
我在这里做错了什么?
application.properties
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
SessionFactoryConfig.class
import org.hibernate.SessionFactory;
import org.hibernate.jpa.HibernateEntityManagerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SessionFactoryConfig {
@Bean
public SessionFactory sessionFactory(HibernateEntityManagerFactory hemf) {
return hemf.getSessionFactory();
}
}
ReportAverageCost.class
import lombok.*;
import org.hibernate.SQLQuery;
import org.hibernate.SessionFactory;
import org.hibernate.transform.ResultTransformer;
import org.hibernate.transform.Transformers;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Date;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ReportAverageCost {
@Autowired
private SessionFactory sessionFactory;
public Date date;
public List getReportAverageCost() throws Exception {
String q = "SELECT (...)";
SQLQuery query = sessionFactory.getCurrentSession().createSQLQuery(q);
query.addScalar("date");
ResultTransformer aliasToBean = Transformers.aliasToBean(ReportAverageCost.class);
List result = query.setResultTransformer(aliasToBean).list();
return result;
}
}
【问题讨论】:
标签: java spring hibernate spring-boot