Spring Boot Restful Service响应时间太长

时间:2019-01-16 15:47:44

标签: rest spring-boot microservices hibernate-entitymanager response-time

在我的Springboot REST服务中,我无法获得TIMESTAMP(DATE + TIME)作为响应,因为:

如果我将其配置为@Temporal(TemporalType.TIMESTAMP),则它具有 超过400秒。响应时间太多了,

但是 如果我将其配置为@Temporal(TemporalType.DATE),它的时间不到1秒。响应时间很棒,但是我也需要时间。

如果有人知道我失去了我的表现,请帮助:)

我的实体类

@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "DBTM")
@Temporal(TemporalType.TIMESTAMP)  //if this is DATE instead of TIMESTAMP 
                                    //the performance increases
private Date DBTM; 

public StationsMessung(... ,Date DBTM, ...) {
...
this.DBTM = DBTM
...}

public StationsMessung() {
}

public Date getDBTM() { return DBTM;}

public void setDBTM(Date DBTM) { this.DBTM = DBTM;}

我的服务

@Service
public class StationService {

@PersistenceContext
EntityManager entityManager;

public List<Station> getAllStationMessungen(int AVNR, int TXNR, Date 
STARTZEIT, Date ENDZEIT) {
    return entityManager.createQuery("SELECT  b FROM StationsMessung b 
WHERE b.AVNR=:AVNR and b.TXNR=:TXNR and b.DBTM between :STARTZEIT and 
:ENDZEIT" )
            .setParameter("AVNR",AVNR )
            .setParameter("TXNR",TXNR )
            .setParameter("STARTZEIT", STARTZEIT)
            .setParameter("ENDZEIT", ENDZEIT)
            .getResultList();
}

这是我的控制器

@RequestMapping(value = 
"/allmessungen/{AVNR}/{TXNR}/{STARTZEIT}/{ENDZEIT}", method = 
RequestMethod.GET) 
public List<Station> getAllStationMessungen(@PathVariable int AVNR, 
@PathVariable int TXNR, @PathVariable String STARTZEIT,  @PathVariable 
String ENDZEIT) 
throws ParseException {
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-HH:mm", 
    Locale.GERMAN);
    System.out.println("erste startzeit beim eingeben des strings");
    System.out.println(STARTZEIT);

    Date STARTZE=formatter.parse(STARTZEIT);
    Date ENDZE=formatter.parse(ENDZEIT);
    System.out.println("2.startzeit nachm formatieren");
    System.out.println(STARTZEIT);

return stationService.getAllStationMessungen( AVNR, TXNR, STARTZE, 
ENDZE);
} 

如果我使用

@Temporal(TemporalType.TIMESTAMP) 

在我的实体类中

->我不到1秒。响应时间

如果我使用
@Temporal(TemporalType.DATE) 在我的entityclass中

->我获得500秒的响应时间

为什么时间戳记作为数据响应需要那么长的时间?

0 个答案:

没有答案