2016-12-16 12:38

设置一下最大安全层数即可,该参数是为了防止被转换数据自身有循环依赖

2016-12-15 10:32

@张露露 关键是这个问题,以前从来没人反馈过,不知道原因,这个是你碰到的?

2016-12-15 10:16

@Romeo jfinal 只是简单的开启 jdbc 的事务功能,并没有关注过乐观锁这些东东

2016-12-15 10:15

@张露露 这个需要单步调试精确定定位问题,很多不用 sql server,建议去群里问问

这个问题以前没人反馈过,试试换个 jdbc 驱动

2016-12-14 22:43

多个 RedisPlugin 的用法分为三种情况:
1:每个 RedisPlugin 对象连接到不同的 redis 服务端
2:每个 RedisPlugin 对象连接到同一个 redis 服务端的不同 db
3:以上两种情况的混合

第一种情况的例子:
new RedisPlugin("r1", "192.168.1.111");
new RedisPlugin("r2", "192.168.1.222");
通过 Redis.use("r1") 就能访问 ip 后缀为 111 的服务端,通过Redis.use("r2") 就能访问 ip 后缀为 222 的服务端

第二种情况的例子:
new RedisPlugin("r1", "localhost", 6379, 3000, "myPasswrod", 1);
new RedisPlugin("r2", "localhost", 6379, 3000, "myPasswrod", 2);
以上两个 RedisPlugin 同时连接到了 localhost 这同一个服务端的不同的 database,第一个为 db 1 第二个为 db2,注意看最后一个参数就是 db 号
通过 Redis.use("r1") 可直接访问 db1,通过 RedisUse("r2") 则直接访问 db2,通过这种方式就不再需要使用 select(db) 来切换 redis 的 db

第三种情况是上面两种情况的混用,在此不在赘述

2016-12-14 20:14

@Irin.Chan 多多支持 jfinal 发展,2017 必定极速发展

2016-12-14 20:13

@nbjgl 事务的理解没那么简单,任何数据库实现事务都是在保障数据一致性的前提下,尽可能速度快,也就是说可以不必排队就不去排,例如两个线程同时操作同一个库,但是为不同的表,又或者操作的同一张表,但不是同一条记录,又或是同一条记录但不是同一个字段,必然会针对性能搞出一整套理论

2016-12-14 16:56

@白银骑士 多尝试一下,大前提是只要是 jdbc 支持的功能, jfinal 在本质上都支持

2016-12-14 15:56

任意选择一个数据源,然后在 sql 中直接查询就好,例如:
Db.use("mysql").find("select * from db1.table1 a join db2.table2 b on a.field = b.field")

jfinal 仅仅对 jdbc 进行了一层极其薄的封装,相当于直接将 sql 与其参数直接扔给了 JDBC,所以只要是 JDBC 支持的,jfinal 在理论上都支持,基于这个基本点,只需要研究好 jdbc 可以怎么实现就可以直接再应用于 jfinal 之上

2016-12-14 15:50

@ploolp 事务的控制策略是一个复杂问题,不同数据库有自己的一套算法,建议看看相关文档,jfinal 站在 web mvc + orm 这个层面,只管去使用数据库的事务,并不关心数据库底层如何利用事务控制保障数据的一致性

2016-12-14 15:10

@ploolp 即便是 100 个独立的程序,但数据库是同一个实例,事务是针对当前的数据库实例来说的,事务就是来保障多线程或多项目实例同时操作同一个数据库时数据一致性的

2016-12-14 14:38

@luorongda 感谢回来分享,赞一个

2016-12-14 14:37

事务的具体用法,jfinal 手册上有,在首页下载 jfinal 手册