NutzCN Logo
问答 正则表达式问题
发布于 3116天前 作者 qq_22a94082 1768 次浏览 复制 上一个帖子 下一个帖子
标签:

如下代码,将只更新 Pet 的 id 和 name 字段:
FieldFilter.create(Pet.class, "^id|name$").run(new Atom() {
public void run() {
Pet pet = dao.fetch(Pet.class, 24);
pet.setName("ABC");
pet.setNickname("XiaoBai");
dao.update(pet);
}
});
只更新除了id和name以外的正则应该怎么写?

7 回复

FieldFilter还有好几个方法,例如locked

    /**
     * 创建一个过滤器
     * 
     * @param type
     *            POJO 类型
     * @param locked
     *            正则表达式,哪些字段会被忽略,语法请参看 Pattern 类的 JavaDoc
     * @return 字段过滤器
     */
    public static FieldFilter locked(Class<?> type, String locked) {
        return create(type, null, locked, true);
    }

这样写总感觉弄复杂了,其实我只是需要一个与"^id|name$"相反的正则表达式而已.

而且new Atom的匿名类形式没法传出参数来写逻辑呢.

@qq_22a94082 去查查java正则表达式取反,蛋疼得不要不要的

@wendal 正则真的蛋疼得不要不要的.

@wendal 能不能加以改进,通过@ColDefine注解能控制哪些字段可更新,哪些不可更新,否则表的字段一多,控制哪些不能更新的那个字符串会特别长,而且不好维护,生怕写错了一个字段名。

添加回复
请先登陆
回到顶部