我想从数据库中读取并创建一个 CSV 文件。为了做到这一点,我正在使用camel-jdbc和camel-bindy。
首先,我使用 SELECT 语句设置正文。
SELECT [vendor],
[ean],
[itemid] AS itemId,
[quantity]
FROM [dbo].[ElectronicDeliveryNotes]
然后我调用 jdbc 组件
<to uri="jdbc:dataSource?outputType=SelectList&outputClass=com.xxx.Model"/>
这将返回一个模型列表。模型类是
@CsvRecord(separator = ";", generateHeaderColumns = true, crlf = "UNIX")
public class Model2 {
@DataField(pos = 1, columnName = "A_Liererant")
private String vendor;
@DataField(pos = 2, columnName = "F_EAN")
private String ean;
@DataField(pos = 3, columnName = "G_Lief. Artikelnummer")
private String itemId;
@DataField(pos = 4, columnName = "H_Menge")
private BigDecimal quantity;
//getters setters
我收到以下错误:
java.lang.IllegalArgumentException: Cannot map all properties to bean of type class com.xxx.Model2. There are 1 unmapped properties. {itemid=11.0441-5402.2}
据我了解,问题在于模型属性的命名。我尝试并工作的一种解决方案是重命名模型itemId => itemid。这会起作用,但我没有使用 Java 命名约定。
你知道如何在不重命名属性的情况下克服这个问题吗?
我也尝试了以下方法,但没有奏效。
@DataField(pos = 3, columnName = "G_Lief. Artikelnummer", name = "itemid")
private String itemId;