请大佬指点

public static void mapping(ActiveRecordPlugin arp) {

arp.addMapping("BO_EU_NPD_EINE", "ID", BoEuExcelTest.class);

arp.addMapping("BO_EU_NPD_EINE", "ID,ID,ID,ID,ID", BoEuNpdEine.class);

arp.addMapping("BO_ACT_DPM_MONTHDEMANDTEMPLATE", "ID,ID", BoActDpmMonthdemandtemplate.class);

arp.addMapping("BO_ACT_DPM_MONTHDEMANDOTH", "ID,ID", BoActDpmMonthdemandoth.class);

我理解的是这里的ID指定的是表的主键,这里代码这样的操作是什么意思,请大佬指点一下


评论区

JFinal

2019-09-27 11:47

这段代码怎么来的? 是不是用生成器生成的? 数据库是不是 Oracle ?

提问必须要提供足够的信息量,否则没人猜到你要问什么

一个葫芦子

2019-09-27 11:54

Generated by JFinal, do not modify this file.这是注释,是生成器生成的吧,是oracle,他是把所有的这种映射实体和表 写到一个类中了,不知道里面的ID 是什么意思,里面可以写这么多ID的吗?

JFinal

2019-09-27 13:09

@一个葫芦子 ID 是主键,你生成的主键与 tableName 都有重复的问题,肯定是生成的问题

主键生成重复问题是 oracle 驱动的 bug,在高版本的 jfinal 已经处理过,升到 jfinal 4.5 即可解决

tableName 生成重复的问题头一次见,这个你得好好检查一下原因

一个葫芦子

2019-09-27 13:20

@JFinal 这不是我写的代码,这是之前的代码,但是项目没有什么问题啊 已经上线的项目拿来改的

一个葫芦子

2019-09-27 13:23

tableName 那个后面对应的那个class是不一样的,这样可以重复吗?

JFinal

2019-09-27 14:12

@一个葫芦子 tableName 后面的 class 不一样这个倒是可以让 tableName 重复映射

但主键名重复一定是有问题的,你升级到较高的版本,不会生成重复主键名

注意,这个重复问题是 oracle 驱动问题,jfinal 高版本解决这个问题不是份内之事

JFinal

2019-09-27 14:12

大部分 oracle 版本的驱动都不会有这个问题

zhangchuang

2019-09-27 17:29

之前 在 Oracle 下 用 Jfinal 的 代码生成器 没发现 这样的问题。粘个 我用过的 oracle 驱动 给你 :

com.oracle
ojdbc6
11.2.0.1.0