asset是设备分组表,relation是关联表,device是设备表,asset中的id是relation中的toId,device的id是relation中的fromId,怎么写jpa的连表查询查出所有device
时间: 2024-02-24 20:57:39 浏览: 74
假设你的实体类分别为Asset、Relation、Device,可以使用JPA的@Join注解进行连表查询。具体的代码如下:
```java
@Repository
public interface DeviceRepository extends JpaRepository<Device, Long> {
@Query(value = "SELECT d.* FROM device d " +
"JOIN relation r ON d.id = r.from_id " +
"JOIN asset a ON r.to_id = a.id",
nativeQuery = true)
List<Device> findAllDevices();
}
```
这里使用了原生SQL语句进行查询,使用了JOIN关键字将三张表关联在一起,最终查询出所有的Device记录。注意,这里使用的是原生SQL语句,而不是JPQL语句,因此需要将nativeQuery属性设置为true。
阅读全文