使用Spring JPA无法从DB获取信息

时间:2019-11-14 08:41:52

标签: java oracle spring-boot jpa spring-data-jpa

我正在尝试从Oracle获取数据。

我在类“主页”

中具有@OneToMany关系
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "obj_id", referencedColumnName = "obj_id", insertable = false, updatable = false)
private List<Room> roomCollection;

我有这个存储库:

    @Repository
    public interface FkvaRepository extends JpaRepository<ROOM, Long> {

    @Query(value = "SELECT * FROM ROOM WHERE OBJ_ID=?1", nativeQuery = true)
    List<ROOM> findAllByObjectId(Long id);
}

我有一个控制器,它通过家庭ID获取所有房间:

@RequestMapping(value = "/room/{id}",
            method = RequestMethod.GET,
            produces = { MediaType.APPLICATION_JSON_VALUE })
    public List<Room> getRoom(@PathVariable(name = "id") Long id) {

        List<Room> roomCollection = roomRepository.findAllByObjectId(id);
        return roomCollection;
    }

但是当我尝试

http://localhost:9000/room/466

结果中我的房间对象数正确,但是它们都是第一个的重复。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

  

SELECT * FROM ROOM WHERE OBJ_ID =?1是这里的问题。

使用以下内容

List<ROOM> findAllByRoomId(Long id);

Id是房间的实体主要ID。删除本地查询代码。