在我的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秒的响应时间
为什么时间戳记作为数据响应需要那么长的时间?