我们使用OpenCSV来解析CSV文件,并使用CsvToBean类将其值直接绑定到模型对象(OpenJPA实体bean).
然而,问题是 - 在CSV中有一些值(显然)被解析为Strings,但应该在Date属性中设置,所以基本上CsvToBean类在尝试动态调用写入方法时死亡(即,它尝试设置Date属性) with raw String value).
OpenCSV中是否有任何工具允许我指定每列应映射到哪种类型?如果没有,你有什么建议可以扩展/重新实现以便于此吗?在/test/au/com/bytecode/opencsv/bean/目录下检查OpenCSV源代码分发中的其他可用strageties 让我没有接近结论.
我想我可以摆弄Date属性setter并使它成为一个泛型方法,它将类型作为参数传递,并尝试解析传递的值,Date如果它还没有Date,但....我们正在使用持久性注释实体,我不希望稍后看到这个"setter-hack"向我们开枪,因为OpenJPA Enhancer突然不喜欢通用的二传手.
我一直在抨击这个问题几个小时 - 我可能通过使用反射和编写我自己的bean绑定逻辑解决了这个问题,但是我不喜欢重新发明轮子并且有一种感觉/希望这可能在现有的OpenCSV框架内轻松完成.
如果需要,我可以发布一些代码,但真的没什么可看的.
有什么想法吗?谢谢.
如何在类定义中创建 Date 属性的副本?我们已经使用 BeanUtils 做了类似的事情
所以,你的 Bean 类包含
String dateString;
Date date;
public void setDateString(String dateString) {
// This method can parse the dateString and set date object as well
}
public void setDate(Date date) {
// Use this for JPA
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6590 次 |
| 最近记录: |