MyBatis生成器中的java私有同义词
我正在使用Mybatis生成器生成对象。我能够用该模式中的实际表名生成类。但对该表上的不同模式授予了select权限,并创建了一个私有同义词。我想用这个同义词生成对象
<table tableName="PrivateSynonym" domainObjectName="PrivateSynonym" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true" modelType="flat">
<property name="useActualColumnNames" value="true" />
</table>
我尝试了上面的例子,但没有成功。它说没有用PrivateSynonym映射的表。可以使用同义词生成对象吗?非常感谢您的帮助
# 1 楼答案
从同义词生成的能力取决于JDBC驱动程序,但我并不奇怪它不起作用。生成器使用
DatabaseMetaData.getColumns()
方法来了解表,大多数驱动程序在命令中忽略同义词也就不足为奇了这个问题的解决方案是基于表生成代码,但将运行时名称更改为其他名称。您可以使用特权ID生成代码,但在生成的代码中使用同义词,这样用户就不需要特权ID。例如: