Получение беспорядочных или неправильных данных при обработке собственного запроса при весенней загрузке

Я пишу собственный запрос в репозиторий jpa с левым соединением и получаю беспорядочный вывод, а добавление дополнительных столбцов в запрос вызывает ошибку преобразования из java.object в мой класс модели. Более того, когда я пытаюсь вернуть все из вывода соединения, это дает дублирование псевдонима использования идентификатора

Я попытался создать другой класс и интерфейс для хранения результата запроса, но этого не произошло

это репозиторий

@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);

 }

это мой контроллер

    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

 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
  }
 ]

Как и для иерархии_id, это должно быть 1, где, поскольку приходящие выходные данные - 33 И для значения, оно должно быть 33, где, поскольку данные результата равны 1 при весенней загрузке.


person Pooja Dassani    schedule 10.09.2019    source источник


Ответы (1)


Попробуйте использовать номенклатуру camelCase

public interface GroupAttData {

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

}
person imperezivan    schedule 10.09.2019
comment
я делал это раньше, но это дает мне ошибку преобразования типа - person Pooja Dassani; 11.09.2019
comment
ммм, попробуйте использовать предыдущий способ, но добавив аннотацию значения @Value (# {target.groupattributeid}) Long getattribute_id (); - person imperezivan; 11.09.2019
comment
получение ошибки java.lang.IndexOutOfBoundsException - person Pooja Dassani; 16.09.2019