在这种情况下,我需要将新的String对象添加到自定义类型对象Array,ServiceOrderEntity。我知道这种打破ServiceOrderEntity
完整性,但我必须从jsp访问这个字段。最好的方法是什么?
DAO课程:
...
SQLQuery localSQLQuery = localSession.createSQLQuery(query).addEntity(ServiceOrderEntity.class);
localList = localSQLQuery.list();
Iterator itr = localList.iterator();
while (itr.hasNext()){
String field = "some value";
itr.next().append( field ); // something like that maybe....
}
return to Service class
...
服务类
...
List list = perform DAO request
model.addAttribute("serviceOrderList", localList);
....
更新
我拥有Hibernate生成的所有模型,我不想触摸它们。我需要添加自定义对象,在本例中为ServiceOrderEntity
或查找解决方法。我想我可以复制它并添加新字段(使用Dozer)?新字段是其他复杂子查询的结果。
运行时的ServiceOrderEntity对象列表:
-list
--[0]model.ServiceOrderEntity@d826d3c7
---createdBy = {....}
---serviceRequestFK{java.Lang.Integer} // << this one
--[1]
....
etc
我需要在name
中使用 serviceRequestFK 获取ServiceOrderEntity
。只要java不允许hot fix
(将自定义字段添加到已创建的对象),我就需要找到一种方法将name
字段传递给JSP。什么是正确的方法?
我真的不想包含来自jsp的DAO mathod请求......
创建单独的名称列表?...
答案 0 :(得分:1)
由于Java不允许混合(也就是猴子修补),你必须:
如果您想添加该字段以便Service类可以完成其工作,那么就足够了。但是,如果新字段是有效负载输入/输出的一部分,则考虑使用该特定服务,然后考虑:
这一建议背后的理由是遵循契约优先发展的原则。