gpt4 book ai didi

java - 从检索 jasper 报告中两个实体的查询中获取值

转载 作者:行者123 更新时间:2023-12-01 05:18:45 24 4
gpt4 key购买 nike

我正在使用 ireport 4.1.1 和 hibernate jpa,并且我有一个检索两个实体的查询:

select a,b from TableA a left join a.tableBList b

我试图获取 a 和 b 的值,在 java 中,它返回一个包含两个项目的对象数组 (Object[]),但是当我尝试在 jasper 报告上执行此操作时,它给了我这个错误:

Exception in thread "main" net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : fieldName

我认为我只需要将 fieldName 替换为将返回的对象的名称,但我不知道它,我尝试找到它,但没有成功,请你们中的任何人都可以帮助我???

提前致谢:)

最佳答案

此错误是因为您的数据未与 beans 属性映射,或者您的数据模式不符合 beans 属性。我的java项目也遇到了同样的问题。我发现你的数据应该采用正确的二维数组形式,然后我从某处获取了样本数据并执行了此操作

String[][] data =
{{ "N263Y", "T-11", " 39 ROSCOE TRNR RACER"},
{ "N4087X", "BA100-163", "BRADLEY AEROBAT"},
{ "N43JE", "HAYABUSA 1", "NAKAJIMA KI-43 IIIA"},
{ "N912S", "9973CC", "PA18-150"}};

JTable m = new JTable(data,headers);
try {

JasperReport jasperReport = JasperCompileManager.compileReport(fileName);

if(jasperReport != null )
System.out.println("so far so good ");

// Fill the report using an empty data source

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JRTableModelDataSource(m.getModel()) );//create());//con.connection);
try{
JasperExportManager.exportReportToPdfFile(jasperPrint, outFileName);
System.out.printf("File exported sucessfully");
}catch(Exception e){
e.printStackTrace();
}
JasperViewer.viewReport(jasperPrint);

} catch (JRException e) {
JOptionPane.showMessageDialog(null, e);
e.printStackTrace();
System.exit(1);
}

注意:

您的字段名称应以小写字母开头,而且字段名称应与您在该数据中提供的列名称一样小。

希望这对您有帮助。

关于java - 从检索 jasper 报告中两个实体的查询中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10786614/

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