gpt4 book ai didi

mysql - 在 spring boot 中处理 native 查询时获取困惑的数据或错误的数据

转载 作者:行者123 更新时间:2023-12-02 04:23:04 24 4
gpt4 key购买 nike

我正在使用左连接在 jpa 存储库中编写 native 查询并获​​得困惑的输出并向查询添加更多列会生成从 java.object 到我的模型类的转换错误。此外,当我尝试从 join 的输出中返回所有内容时,它给出了 id 使用别名的重复

我试过制作不同的类和接口(interface)来存储查询结果但没有发生

这是仓库

@Repository

public interface GroupRepository extends JpaRepository<Groups, Long> {

@Query (value="SELECT gad.id ,gha.id as groupattributeid , gad.group_id ,gad.value , gad.attribute_id, gha.hierarchy_id FROM group_attr_data gad JOIN group_hierarchy_attributes gha ON gad.attribute_id = gha.id where gad.group_id = ?1",nativeQuery = true)

Collection<GroupAttData> viewGroupAttData(Long group_id);

}

这是我的 Controller

    public class GroupController {

@Autowired
GroupRepository groupRepository;
@RequestMapping(value="/view-group-attr-data", method = RequestMethod.POST, consumes="application/json" , produces = "application/json")

public Collection<GroupAttData> ViewGroupAttData(@RequestBody GroupAttrData request) throws ResourceNotFoundException{

if(groupRepository.viewGroupAttData(request.getGroup_id()).isEmpty()) {

throw new ResourceNotFoundException("groups not found " );

} else {

return (List<GroupAttData>) groupRepository.viewGroupAttData(request.getGroup_id());

}

}
}

这是我的GroupAttData模型接口(interface)

 public interface GroupAttData {

public Long getid();
public Long getgroup_id() ;
public Long getattribute_id();
public String getvalue();
public Long getgroupattributeid();
public Long gethierarchy_id();

}

实际结果应该是

 SELECT gad.id ,gha.id as groupattributeid , gad.group_id ,gad.value ,gad.attribute_id, gha.hierarchy_id FROM group_attr_data gad JOIN group_hierarchy_attributes gha ON  gad.attribute_id = gha.id where gad.group_id = 1;

# id, groupattributeid, group_id, value, attribute_id, hierarchy_id
'299' '7' '1' '33' '7', '1'

结果是

 [
{
"hierarchy_id": 33,
"groupattributeid": 1,
"id": 7,
"value": "1",
"group_id": 7,
"attribute_id": 299
}
]

对于 hierarchy_id 它应该是 1,因为即将到来的输出数据是 33 并且对于 value 它应该是 33,因为在 spring boot 中结果数据是 1。

最佳答案

尝试使用驼峰命名法

public interface GroupAttData {

Long getId();
Long getGroupId() ;
Long getAttributeId();
String getValue();
Long getGroupattributeid();
Long getHierarchyId();

}

关于mysql - 在 spring boot 中处理 native 查询时获取困惑的数据或错误的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57866254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com