java.sql.SQLException:检测到未定义的列名。(冬眠)
我有下面的方法,它给了我一个异常java.sql.SQLException:检测到未定义的列名。(冬眠),java,sql,hibernate,exception,db2,Java,Sql,Hibernate,Exception,Db2,我有下面的方法,它给了我一个异常 private double doFullCalculation(Iterable<OfferToCatalog> startOfferCatalogs, Iterable<OfferToCatalog> endOfferCatalogs){ double fullWeeksSales=0d; int startWeeks=0; int startIteration =0;
private double doFullCalculation(Iterable<OfferToCatalog> startOfferCatalogs, Iterable<OfferToCatalog> endOfferCatalogs){
double fullWeeksSales=0d;
int startWeeks=0;
int startIteration =0;
for(OfferToCatalog startOfferToCatalog: startOfferCatalogs){
List<OfferWeeks> startOfferWeeks = offerWeeksRepository.getWeeksForCatalogNumber(startOfferToCatalog.getOfferToCatalogKey().getBusinessUnitNumber()+""+startOfferToCatalog.getOfferToCatalogKey().getCatalogNumber()+""+startOfferToCatalog.getOfferToCatalogKey().getCatalogVersion());
startIteration++;
if(startIteration==1){
startWeeks=startOfferWeeks.size();
}
fullWeeksSales += addStartWeeks(startWeeks, startOfferWeeks);
}
for(OfferToCatalog endOfferToCatalog: endOfferCatalogs){
List<OfferWeeks> endOfferWeeks = offerWeeksRepository.getWeeksForCatalogNumber(endOfferToCatalog.getOfferToCatalogKey().getBusinessUnitNumber()+""+endOfferToCatalog.getOfferToCatalogKey().getCatalogNumber()+""+endOfferToCatalog.getOfferToCatalogKey().getCatalogVersion());
fullWeeksSales += addEndWeeks(startWeeks, endOfferWeeks);
}
return fullWeeksSales;
}
我能找出问题所在。在“传递”失败的方法时,这是查询返回数据的唯一时间。因为第二列是数据的总和,所以如果我没有声明,它就不会返回命名列 我的实体映射正在为第二列寻找一个命名列,但由于它在结果集中没有命名,我的程序不知道如何处理数据
@Entity
@Table(name = "OECATPAG")
public class OfferWeeks implements Serializable{
String week;
BigDecimal sales;
@Id
@Column(name = "FCLYERWK", columnDefinition = "varchar2(40)")
public String getWeek() {
return week;
}
public void setWeek(String week) {
this.week = week;
}
@Column(name = "RMSALES", columnDefinition = "decimal(18,9)")
public BigDecimal getSales() {
return sales;
}
public void setSales(BigDecimal sales) {
this.sales = sales;
}
}
我能找出问题所在。在“传递”失败的方法时,这是查询返回数据的唯一时间。因为第二列是数据的总和,所以如果我没有声明,它就不会返回命名列 我的实体映射正在为第二列寻找一个命名列,但由于它在结果集中没有命名,我的程序不知道如何处理数据
@Entity
@Table(name = "OECATPAG")
public class OfferWeeks implements Serializable{
String week;
BigDecimal sales;
@Id
@Column(name = "FCLYERWK", columnDefinition = "varchar2(40)")
public String getWeek() {
return week;
}
public void setWeek(String week) {
this.week = week;
}
@Column(name = "RMSALES", columnDefinition = "decimal(18,9)")
public BigDecimal getSales() {
return sales;
}
public void setSales(BigDecimal sales) {
this.sales = sales;
}
}
失败时,
:catalogNumber
的值是多少?您是否查看了IBM i服务器上连接会话的作业日志中的消息?服务器上有IBM i的哪个版本&TR#?当它失败时,:catalogNumber是“1202312A”。工作:catalogNumber为“1202830B”:catalogNumber
失败时的值是多少?您是否查看了IBM i服务器上连接会话的作业日志中的消息?服务器上有IBM i的哪个版本&TR#?当它失败时,:catalogNumber是“1202312A”。A工作:目录编号为“1202830B”
201344 239.70000
201345 6045.34500
201346 8885.38200
201347 19087.47600
201348 18076.79600
201349 22518.06900
201350 24897.04300
201351 21699.63600
201352 12532.93400
201401 13964.03500
201402 10197.32900
201403 7687.81300
201404 3980.19600
201405 4828.38000
201406 3592.61600
201407 2069.02900
201408 1612.69500
201409 3280.60700
201410 77.40000
201411 25.65700
201412 847.53000
201413 594.59100
201414 391.50000
201415 2292.53200
201416 0.00000
@Entity
@Table(name = "OECATPAG")
public class OfferWeeks implements Serializable{
String week;
BigDecimal sales;
@Id
@Column(name = "FCLYERWK", columnDefinition = "varchar2(40)")
public String getWeek() {
return week;
}
public void setWeek(String week) {
this.week = week;
}
@Column(name = "RMSALES", columnDefinition = "decimal(18,9)")
public BigDecimal getSales() {
return sales;
}
public void setSales(BigDecimal sales) {
this.sales = sales;
}
}