【发布时间】:2016-09-02 20:01:51
【问题描述】:
我正在使用JOOQ 和 Postgres。 在 Postgres 中,我有一列 gender:
'gender' AS gender,
(表本身是一个视图,而性别列是一个占位符,用于在 Java 中计算的值)
在 Java 中,当我 .fetch() 视图时,我会对每条记录进行一些计算:
for (Record r : skillRecords) {
idNumber=function(r)
r.set(id, idNumber);
r.set(gender,getGender(idNumber));
}
一切看起来都不错,如果 println 的值都是正确的。 但是,当我在我的技能记录上调用 intoResultSet() 时,性别列的所有值旁边都有一个星号,例如“*Male”。
然后,我使用结果集作为 OpenCSV CSV 编写器的输入,当我打开 CSV 时,性别列显示为空。
有什么建议吗?
更新:
根据 Lukas 关于星号的意见,我意识到问题可能出在 opencsv 上。
我的代码如下:
File tempFile = new File("/tmp/file.csv");
BufferedWriter out = new BufferedWriter(new FileWriter(tempFile));
CSVWriter writer = new CSVWriter(out);
//Code for getting records sits here
for (Record r : skillRecords) {
idNumber=function(r)
r.set(id, idNumber);
r.set(gender,getGender(idNumber));
}
writer.writeAll(skillRecords.intoResultSet(), true);
return tempFile;
CSV 中的所有列都按预期返回,但性别列除外,该列具有标题“性别”但列值为空。 我在上面的代码中有必要的 try/catch,但为了简洁起见,我将它们排除在外。
【问题讨论】:
-
我已经回答了与
"*Male"对应的部分。您介意在 OpenCSV 中添加更多关于null部分的信息吗?
标签: java postgresql jooq opencsv