getBean 获取表单 和 select tt.id as tag_type_id 冲突解决方法?

分页查询里面:

select tt.type_name, tt.id as tag_type_id, t.* from tag_info t left join tag_type_relation r on t.id = r.tag_id left join tag_type tt on tt.id = r.tag_type_id order by id asc


表单提交时saveOrUpdate:

页面表单包括: tag_type_id 及tag_info 的model

执行saveOrUpdate时提示:

Caused by: com.jfinal.plugin.activerecord.ActiveRecordException: The attribute name does not exist: tag_type_id

因为model不含tag_type_id字段。


@JFinal,遇到这种情况有好的解决方案吗?


评论区

JFinal

2016-07-22 17:57

保存之前,使用 model.remove("tag_type_id") 移除一下就好,如果需要移除的字段非常多并且保留的字段少,可以使用 model.keep(a, b,... n) 来指定需要要保留的字段。此外 model.remove(...) 也是支持同时移除多个字段的: model.remove(a, b, ..., n)

小飞象

2016-07-22 21:36

小飞象

2016-07-25 10:18

@JFinal 如果是getBean的话 ,TagInfo model = getBean(TagInfo.class, ""); 直接报异常了。

JFinal

2016-07-25 11:59

@小飞象 报啥异常,getBean 需要先使用 jfinal 2.3 的生成器,为 model 生成 getter、setter 方法

绿色的小苹果

2016-07-25 12:03

@JFinal JFinal2.3出来了?

JFinal

2016-07-25 13:07

@绿色的小苹果 2.3 已经开发完了部分功能。jfinal 社区功能完善后,就继续开发 jfinal 2.3

绿色的小苹果

2016-07-25 14:12

@JFinal 能不能透露下有什么爽的功能

小飞象

2016-07-25 14:13

@JFinal 已经手动加上了tag_type_id 对应的getter和setter方法。

小飞象

2016-07-25 14:16

@JFinal 报错是同样的,Caused by: com.jfinal.plugin.activerecord.ActiveRecordException: The attribute name does not exist: tag_type_id

TagInfo model = getBean(TagInfo.class, "");
model.remove("tagTypeId");
执行第一句就报异常了。

JFinal

2016-07-25 14:54

@小飞象 既然没有 getter、setter,你用一下 getModel(TagInfo.class, "") 就好了,何必去用 getBean(...)?

JFinal

2016-07-25 14:55

@绿色的小苹果 爽的功能太多了,一时不知道从何说起,多多关注社区动态,了解最新的 jfinal 发展信息 ^_^

热门反馈

扫码入社