Java 在“中使用多个属性时XML中的JMapper配置问题”;至;论点
我正在尝试使用JMapper将静态映射到StaticD类。以下是配置Java 在“中使用多个属性时XML中的JMapper配置问题”;至;论点,java,mapping,Java,Mapping,我正在尝试使用JMapper将静态映射到StaticD类。以下是配置 <jmapper> <class name="com.StaticD"> <global> <value name="map"/> </global> </class> <class name="com.StaticS"> <conversion name="toDate" from="m
<jmapper>
<class name="com.StaticD">
<global>
<value name="map"/>
</global>
</class>
<class name="com.StaticS">
<conversion name="toDate" from="map" to="startDate, endDate">
return new java.text.SimpleDateFormat("dd/MM/yyyy").parse((String)${source}.get("${destination.name}"));
</conversion>
<conversion name="toString" from="map" to="securityName, id">
return (${destination.type}) ${source}.get("${destination.name}");
</conversion>
</class>
</jmapper>
预期产出如下:
public class StaticS {
private Map<String, String> map;
public Map<String, String> getMap()
{
return map;
}
public StaticS(Map<String, String> map) {
super();
this.map = map;
}
}
public class StaticD {
private Date startDate;
private Date endDate;
private String id;
private String securityName;
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getSecurityName() {
return securityName;
}
public void setSecurityName(String securityName) {
this.securityName = securityName;
}
public StaticD() {}
}
StaticD{id=JMapper Framework v.1.2.0, startDate=Sat Aug 22 00:00:00 CDT 1987, endDate=Sat Aug 22 00:00:00 CDT 1987, securityName=JMapper Framework v.1.2.0}
StaticD{id=JMapper Framework v.1.2.0, startDate=Sat Aug 22 00:00:00 CDT 1987, endDate=Sat Aug 22 00:00:00 CDT 1988, securityName=IBM}
正如您所看到的,startDate将在实际输出的StaticD类中同时包含start和endDate属性
如果我对每个属性使用单独的转换,那么它是有效的,但是,当我对两个不同的属性使用相同的转换时,映射不起作用
例如,以下代码可以工作,但代码是冗余的
返回(${destination.type})${source}.get(“${destination.name}”);
返回(${destination.type})${source}.get(“${destination.name}”);
如果我在to参数中使用了多个属性,您能解释一下为什么上面提到的映射这两个类的配置不起作用吗?在进行转换时,我必须在xml文件中指定type=“DYNAMIC”
<conversion name="toDate" from="map" to="startDate, endDate" type="DYNAMIC">
return new java.text.SimpleDateFormat("dd/MM/yyyy").parse((String)${source}.get("${destination.name}"));
</conversion>
返回新的java.text.simpleDataFormat(“dd/MM/yyyy”).parse((String)${source}.get(${destination.name}”);
<conversion name="toString" from="map" to="securityName">
return (${destination.type}) ${source}.get("${destination.name}");
</conversion>
<conversion name="toString" from="map" to="id">
return (${destination.type}) ${source}.get("${destination.name}");
</conversion>
<conversion name="toDate" from="map" to="startDate, endDate" type="DYNAMIC">
return new java.text.SimpleDateFormat("dd/MM/yyyy").parse((String)${source}.get("${destination.name}"));
</conversion>