Я разрабатываю 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 + "]";
}
}