1

我有一些带有 id 和描述性数据的表。在附加表中引用了这些表。

Table A
id int (key)
name string
description string


Table B
id int (key)
name string
description string

Table mix
id_A FK(id tableA)
id_B FK(id tableB)

如果我现在为混合表创建一个数据表

web mvc datatables add --type ~.web.mixController

显示了表 A 和 B 的所有字段(名称和描述)。

1)我怎样才能改变这个只显示名称?

2)似乎对参考列的过滤不起作用?我得到一个例外:org.gvnix.web.datatables.util.DatatablesUtils - 为实体准备过滤器的异常

4

2 回答 2

1

修改实体表示的最简单方法是自定义其toString方法。默认情况下,Spring Roo 使用 Apache Commons 实用程序将其生成为模板,该实用程序使用反射来生成表示字符串。该方法是由@RooToString注解生成的,您可以在{entityClass}_Roo_ToString.aj文件中找到它。要自定义它,只需将方法推入(请参阅Spring Roo 文档)。

关于错误,当我评论您的问题时,我们需要更多信息来确定问题。请复制一些堆栈跟踪行。

问候, 切玛。

于 2015-03-29T12:41:08.383 回答
0

在深入研究控制器的源代码后,我意识到控制器通过方法 datatablesUtilsBean_dtt.populateDataSet 将数据检索到数据表,并且它使用自动装配的属性转换服务注释。

所以为了改变显示字段的值需要修改控制器类ApplicationConversionServiceFactoryBean的converter方法例如:

getMixToStringConverter() 

其中 Mix 是转换为字符串的表,此方法的返回值是您的实体的字符串表示形式。您可以像这样更改您的方法以仅显示名称:

return new StringBuilder().append(mix.getTableA().getName).append(mix.getTableB().getName()).toString();
于 2015-11-27T23:42:01.547 回答