2018-07-12 17:51

@夏天的绅士 会用jfinal...这个问题应该不会问出来的

2018-07-12 17:50

@mrbai2018 自己存到数据库里就行啦

2017-12-27 16:10

@独自等待遗梦 QuartzPlugin 类中 定义了 静态的 private static Scheduler scheduler;后面的startJobs()中给它赋值了。

2017-12-27 16:07

@pfjia 启动之后也可以添加。要不然怎么叫动态添加嘛。

2017-05-23 14:03

@独自等待遗梦

看下加载插件的方式对不对。

public boolean start() {
loadJobsFromProperties();
startJobs();
return true;
}

尤其是startJobs() 方式是否执行了。

另外该插件适配于jfinal2.2,更高版本的未经测试。

2017-02-16 20:20

@JFinal 噢~~,也对。可我相信大多数人第一印象就是,我又该怎么去排序?而且有了历史代码,有了历史数据库类型,历史表结构。
我习惯在用findById的时候直接去看数据库里面的主键 顺序,而不是在返回到config mapping里面看。(不知道其他人)

2017-02-16 19:24

@JFinal 总会有些取舍的。
1.
假如我在
_MappingKit.mapping(arp);
后面再
arp.setPrimaryKey("table", "id1, id2");
那就要把N个变动的表都写设置一次。
2.
创建自己的MytaBuilder ,自己实现排序。此方法还是依赖JDBC。既然JDCB提供的getPrimaryKeys有问题,那不如就直接改它。
3.
至于这个建表语句被改,这就属于极端了。导出的表结构谁会没事改动顺序?而且我们开发人员写sql的时候也会看表结构,按表别结构中主键的顺序去写findById的参数,Generator 只需要按照顺序生成即可。

2017-02-16 16:47

@JFinal
为了保持一致性,我们以数据库主键顺序为准。

而MysqlJDBC 中 DatabaseMetaData 中getPrimaryKeys() 存取数据是用的TreeMap,而TreeMap如不指定排序器,默认将按照key值进行升序排序,不按照主键顺序排序,所以导致主键顺序错误!

于是,改mysql驱动源码中的DatabaseMetaData 类,然后用LinkedHashMap!

2017-02-16 14:54

@JFinal 针对新的model是可以的。但是已经有十几个类的复合主键的顺序错乱了。只能这样改一改了。以后可不能随便切换数据库了。
问题解决了,谢谢了。

2017-02-16 11:32

@JFinal 没用,Mysql JDBC已经被限制了。您再看下我的问题就知道了。

2017-02-15 22:56

@JFinal MysqlJDBC 中 DatabaseMetaData 中getPrimaryKeys() 并非是按照首字母排序,而是取决于TreeMap、

2017-02-15 22:43

是JDBC的问题,mysql jdbc中DatabaseMetaData.getPrimaryKeys默认按照主键名字首字母排序的,并不是按照主键顺序排序。@JFinal

2017-02-15 21:54

@JFinal 按照您第一条回复那样,确实可以解决问题,但是每次新建一个双主键的model 都需要修改config,失去了原来自动生成的意义了。

2017-02-15 21:51

@JFinal 我更新了一下问题,把图片上传上去了。第一个为自动生成的Mapping,第二个为数据库主键顺序。
偏偏就是反了。
哦,对了,我这是库之前是sqlite,没问题。
然后换到mysql,就有问题了

2017-02-15 20:42

@JFinal 不不不,您理解错了,我说的是MetaBuilder 中的 buildPrimaryKey() 方法