Исправлена ​​ошибка, при которой Java не извлекал все строки из хранимой процедуры. - PullRequest
0 голосов
/ 13 марта 2020

Я разрабатываю Java приложение Spring Boot, которое использует хранимые процедуры SQL. Проблема у меня заключается в том, что при вызове хранимой процедуры она дублирует и не показывает одну из строк. Я не уверен, почему, но, кажется, просто пропустить это и повторить предыдущий ряд. Я думал, что это как-то связано с Java List или ArrayList, но они оба допускают дубликаты. Так что теперь я совершенно сбит с толку и не уверен, что делать дальше.

SQL:

Column 1  |  Column 2  |  Column 3
--------  | ---------  | ----------
Computer  |  Windows   |  server1
Computer  |  Linux     |  server2
Web       |  Apache    |  server3
SQL       |  Oracle    |  server4

Выше приведен код из моей базы данных SQL. Когда я вычисляю его через мой код Java, он просто дублирует первый код дважды, пропуская Computer | Linux.

Уровень обслуживания:

        @SuppressWarnings("unchecked")
        public List<AppSelectorTier> getAllTierData() {

            return entityManager.createNamedStoredProcedureQuery("procedure-edit").getResultList();

        }


        public List<AppSelectorTier> getNonDistinctServerInfo() {
            List<AppSelectorTier> myList = getAllTierData();
            System.out.println(myList);
            return myList;
        }

Класс сущности:


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedStoredProcedureQueries;
import javax.persistence.NamedStoredProcedureQuery;
import javax.persistence.ParameterMode;
import javax.persistence.StoredProcedureParameter;


@Entity
@NamedStoredProcedureQueries(value = {
        @NamedStoredProcedureQuery(name = "procedure-edit",
                procedureName = "GetQueryConf",
                resultClasses = AppSelectorTier.class), 

})

public class AppSelectorTier implements java.io.Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "tiername")
    private String tiername;

    @Column(name = "system")
    private String system;

    @Column(name = "mqllisting1")
    private String mqllisting1;

    @Column(name = "mqllisting2")
    private String mqllisting2;

    @Column(name = "tagname_one")
    private String tagname_one;

    @Column(name = "tagname_two")
    private String tagname_two;

    @Column(name = "parseinstruction")
    private String parseinstruction;

    @Column(name = "taddmobj")
    private String taddmobj;





    // Constructor
    public AppSelectorTier(String tiername, String system, String mqllisting1, String mqllisting2, String tagname_one,
            String tagname_two, String parseinstruction, String taddmobj) {
        super();
        this.tiername = tiername;
        this.system = system;
        this.mqllisting1 = mqllisting1;
        this.mqllisting2 = mqllisting2;
        this.tagname_one = tagname_one;
        this.tagname_two = tagname_two;
        this.parseinstruction = parseinstruction;
        this.taddmobj = taddmobj;
    }


    public AppSelectorTier(String tiername, String system,String tagname_two) {
        super();
        this.tiername = tiername;
        this.system = system;
        this.tagname_two = tagname_two;
    }







    // Default Constructor
    public AppSelectorTier() {

    }

    // Getters

    public String getTiername() {
        return tiername;
    }

    public String getSystem() {
        return system;
    }

    public String getMqllisting1() {
        return mqllisting1;
    }

    public String getMqllisting2() {
        return mqllisting2;
    }

    public String getTagname_one() {
        return tagname_one;
    }

    public String getTagname_two() {
        return tagname_two;
    }

    public String getParseinstruction() {
        return parseinstruction;
    }

    public String getTaddmobj() {
        return taddmobj;
    }

    // Setters

    public void setTiername(String tiername) {
        this.tiername = tiername;
    }

    public void setSystem(String system) {
        this.system = system;
    }

    public void setMqllisting1(String mqllisting1) {
        this.mqllisting1 = mqllisting1;
    }

    public void setMqllisting2(String mqllisting2) {
        this.mqllisting2 = mqllisting2;
    }

    public void setTagname_one(String tagname_one) {
        this.tagname_one = tagname_one;
    }

    public void setTagname_two(String tagname_two) {
        this.tagname_two = tagname_two;
    }

    public void setParseinstruction(String parseinstruction) {
        this.parseinstruction = parseinstruction;
    }

    public void setTaddmobj(String taddmobj) {
        this.taddmobj = taddmobj;
    }



    @Override
    public String toString() {
        return "AppSelectorTier [tiername=" + tiername + ", system=" + system + ", mqllisting1=" + mqllisting1
                + ", mqllisting2=" + mqllisting2 + ", tagname_one=" + tagname_one + ", tagname_two=" + tagname_two
                + ", parseinstruction=" + parseinstruction + ", taddmobj=" + taddmobj + "]";
    }



}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...