@JFinal 你好,想跟你请教个问题:
model中有两个setAttrs的方法特别方便,但是这个需要检查table字段,不是table字段是不允许set的。我现在有很多需求是这样的,我把一个大表拆成一些小表,处于效率考虑,但是返回到客户端,我希望将这些字段给放到一个对象中,调用setAttrs就报错了,因字段不符合要求。我希望能开放两个putAttrs方法,允许不检查表字段的情况下想attrs加入值。
JFinalModel提供了put方法,当初是为了方便开发者在前端显示非数据库字段数据,从数据库查到List<YourModel>以后,可以先在后端循环对每个modelput点需要在前端显示的数据。
如果考虑再加个put方法,那么肯定不能叫putAttrs,因为attrs是属性,是与数据库字段对应的,只能考虑加个putMap或者什么别的
有不需要和table对应的put(String,Object)方法啊,不过你是想一次设置多个吧,这个还真没有。你可以自己继承扩展一下 这种需求如果多的话,还是在框架层来封装吧,自己再整一层只是为了做一些小的修改,代码不太好看CPI.getAttrs(Modelmodel)可以得到Mapattrs,然后attrs.putAll(map)就可以了。JFinal目前的设计是为了尽可能避免开发者犯错,如果想打破规则也是可以的,用CPI就可以。
不过从API的一致性来说,既然有了 model.put(...)那么添加一个model.putMap(...)可以考虑
其实我不是太支持向model里面放非数据库字段,我觉得尽量去遵循语义,model就是一个table的映射。
一般有这样的需求我都用record.
最后落实到入库肯定是用model。。这样的话把无关的字段放进去model没意义,如果是相当vo来使用的话,那么record可以满足的其实我不是太支持向model里面放非数据库字段,我觉得尽量去遵循语义,model就是一个table的映射。
一般有这样的需求我都用record.
ar模式的一个含义是:
每一个数据库表对应创建一个类.类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field
我是比较坚持这个原则的。避免语义被异化。
当然同时我也不是很学术的,觉得怎么好用就怎么来吧。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。