如何在运行时将java自定义或字符串对象添加到DAO模型对象?

如何在运行时将java自定义或字符串对象添加到DAO模型对象?,java,spring,Java,Spring,在本例中,我需要将新字符串对象添加到自定义类型对象ServiceOrderEntity的数组中。我知道这种类型会破坏ServiceOrderEntity的完整性,但我必须从jsp访问此字段。最好的方法是什么 DAO类: ... SQLQuery localSQLQuery = localSession.createSQLQuery(query).addEntity(ServiceOrderEntity.class); localList = localSQLQuery.list(); Iter

在本例中,我需要将新字符串对象添加到自定义类型对象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
,或者找到解决方法。我想我可以复制它并将新字段附加到它(使用推土机)?新字段是其他复杂子查询的结果

运行时ServiceOrderEntity对象的列表:

...

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
    ...

-列表
--[0]模型。ServiceOrderEntity@d826d3c7
---createdBy={….}

---serviceRequestFK{java.Lang.Integer}/由于java不允许混入(也称为猴子补丁),您必须:

  • 将字段添加到基本图元
  • 返回包含此字段的子类
如果您希望添加字段以便服务类能够完成其工作,那么就足够公平了。但是,如果新字段是有效负载的一部分,则考虑该特定服务,然后考虑:

  • 为每个服务调用提供特定于用例的有效负载
  • 将这些结果映射到可重用对象模型上。(您可以使用类似于此的内容)
这一建议的基本原理是遵循合同优先开发的原则

  • 您的模型将更通用,因此可以重用。可以将可重用行为添加到模型类中。您的服务将使用这些行为来协调流程。(与“贫血”实体相对)
  • 随着时间的推移,您的服务有效负载可以保持相对稳定。因此,对模型的更改不会影响所有服务订户。(又名“不要泄气”)