jfinal-club例子里面的Session和Account不是自动生成的吗?

jfinal-club-1.3例子里面,Session和Account类似乎都不是自动生成的,而是自己实现,但基类都是自动生成,同时Session和Account同级目录下其他的类都是自动生成,这是怎么实现的,是先生成了Session和Account后再改写吗?

评论区

JFinal

2018-05-22 11:55

先生成 Session Account ,然后再要求添加自己想要的方法即可

生成器在下次生成时,只会自动再次生成 base model MappingKit , 而 Model 已存在,则会跳过,所以你以前在 Session Account 中添加的代码不会被覆盖

libofei

2018-05-22 20:40

@JFinal 好的,明白了。不过如果数据库表结构做了改动,就会把原来的文件覆盖了吧?

JFinal

2018-05-22 22:46

@libofei 只覆盖 Base model , MappingKit , 绝对不会覆盖你的 Model ,因为 jfinal 默认认为你会在 model 中添加自己额外的代码例如 jfinal club 中的 Account Session 类

JFinal

2018-05-22 22:48

看一下 base model 中都有这么一句话就知道了:
Generated by JFinal, do not modify this file.

提醒你不要修改 base model 文件,因为这个文件是每次生成都要覆盖掉的,完全交由生成器去管理

libofei

2018-05-23 22:29

@JFinal 也就是说,非base的Model 只会在最初生成一次,后面就都不会再生成了

JFinal

2018-05-23 22:50

@libofei 可以这么来认为, 但是如果你如果删除了 “非base的 Model” 以后,还是会删除

所以,更精确的表述是,对于 “非base的 Model”,只要存在,则不去生成

当然,这里要注意,所谓的存在,是指生成器去某个目录生成的时候,那个目录下的 model 是不是存在。如果你的 model 放在了 aaa 目录,而生成器生成到 bbb 目录,即便你 aaa 目录下存在 model ,也会当成不存在

说白了,就是生成器不去覆盖 model 文件

libofei

2018-05-23 22:55

@JFinal 嗯,明白了

热门反馈

扫码入社