2019-07-03 12:54

是不是你的oracle数据库里的表和字段都写成小写的了?

2019-05-30 22:13

感谢上面@逍遥一生@杜福忠 两位!理论上,两个Model是没有重复的字段的,当然外键字段肯定值是相等的。比如User里有USER_ID,Blog里也有USER_ID这个字段,既然是两个Model合并,那就肯定这两个字段是一样的,谁覆盖谁都无所谓的。至于其他的字段有重名的,暂不考虑,只管覆盖就行了。

2019-05-30 13:10

补充:主配置里configConstant配置了这个:me.setJsonFactory(FastJsonFactory.me());

2019-05-22 01:02

@Jfinal 第一种场景是多个数据库连接都有几个相同的表名。第二种场景是一个系统有多个单位使用,每个单位创建一个自己的数据库。根据单位ID提前建立好数据库连接,但程序就只有一套。这两种场景都无法避免使用use这种方法。做规模稍微大点的系统,这两种场景基本上很难回避过去。

2019-05-21 13:48

@JFinal,感谢波总。目前暂时只能通过new一个Model实例的形式再调用use方法实现多数据源了。虽然看起来没有之前的那种静态dao方法看起来那么优雅。不过还是期望波总能在这个地方在下个版本里给个更好的解决方案。再次感谢!

2019-05-19 16:54

@JFinal
感谢回复,也就是说,Mode要想实现通过use切换不同的数据源,只能自己New一个Model实例然后调用use方法才可以是吧。不能通过在Model里用static创建一个dao对象来实现是吧。我看Model源码里,dao方法里这么写
public M dao() {
attrs = DaoContainerFactory.daoMap;
modifyFlag = DaoContainerFactory.daoSet;
return (M)this;
}
而use方法里又这么写:
public M use(String configName) {
if (attrs == DaoContainerFactory.daoMap) {
throw new RuntimeException("dao 只允许调用查询方法");
}

this.configName = configName;
return (M)this;
}
另外,如果Model那个静态dao对象不调用dao方法,只是用来查询,是不是会在并发量大的时候,导致甲查询的数据被返回给了乙呢?或则可能存在最大风险是什么?
只能这么回避吗?Db为什么可以通过use就可以线程安全了呢?波总有没有打算这里改进一下?

2019-05-06 14:13

找到了这个方法Table t = TableMapping.me().getTable(PtXzqh.class);可以变通一下,不过依然有个疑问,如果涉及到多数据库,两个数据库里出现了相同的表名,Model名就会一样,这样怎么区分不同的库里的表呢?

2019-05-06 14:03

不管是undertow还是jetty在mac下使用80端口都是不允许的。使用大于1024以上的端口就可以了。