【发布时间】:2019-07-24 02:03:57
【问题描述】:
我想用 Hibernate/JPA 在 MySQL 中创建这样的表。
SENSOR: PK_SENSOR_ID, SENSOR_NAME, SENSOR_URL
SENSOR_DATA: FK_SENSOR_ID, DATE, TIME, VALUE
SENSOR_DATA 将包含来自多个传感器的读数。然后我想有一个使用这个查询的方法:
"SELECT AVG(VALUE), DATE, SENSOR_NAME, FROM SENSOR, SENSOR_DATA WHERE DATE BETWEEN '2019-03-01' AND '2019-03-02' AND SENSOR_ID = FK_SENSOR_ID GROUP BY DATE"
它将返回一个包含每天“值”平均值的数组(带有日期和传感器名称)。
此时我知道我必须使用@Entity 为 SENSOR 创建一个模型,但是 SENSOR_DATA 呢?
到目前为止,我尝试使用日期、时间和值创建一个简单的模型、存储库和服务,然后对其进行查询,但问题是我只能在一天内获得单行。这样,我将不得不为每一天分别创建很多对象,这是没有意义的。我认为这是因为我使用了@Entity 并添加了 id,但我想不出不同的解决方案。我想要的是创建一个Sensor 对象,然后通过SENSOR_DATA 表进行查询。
堆栈:Spring Boot、Spring Boot Data JPA Starter、Hibernate、MySQL、Lombok,
【问题讨论】:
标签: java spring-boot jpa spring-data-jpa spring-data