以 CSV 格式导出 JPA 查询结果的最佳方法是什么? 我尝试了 opencsv 但它需要一个 java.sql.ResultSet 对象,但我不明白如何创建它。我尝试了以下代码
public ResultSet getAllUsersMap() {
String query = "SELECT p from Participant p ORDER BY p.lastName";
ResultSet rs = (ResultSet) em.createQuery(query).getResultList();
return rs;
}
但我收到异常 java.lang.ClassCastException: java.util.Vector 无法转换为 java.sql.ResultSet
JPA 是一个 ORM 框架规范。它与创建 CSV 文件没有直接关系。该错误只是说您将方法
getResultList()
的返回值转换为错误的类型。
使用 opencsv,类似这样的东西应该可以工作:
String query = "SELECT p from Participant p ORDER BY p.lastName";
List resultList = em.createQuery(query).getResultList();
BufferedWriter out = new BufferedWriter(new FileWriter("result.csv"));
CSVWriter writer = new CSVWriter(out);
for (Object item : resultList) {
String line = formatParticipantToLine(item) // method to format properties of Participant with comma's
writer.writeNext(item);
}
writer.close();
更新: 您还可以使用 http://opencsv.sourceforge.net/apidocs/au/com/bytecode/opencsv/bean/BeanToCsv.html 当然还有
Participant
你的豆子。