JFinal可以通过_JFinalDemoGenerator工具类根据数据库自动生成model类,也可以通过 generator.addExcludeTable()设置不生成model类的数据表,现在建立了视图,希望根据视图自动生成model类,但是由于视图没有主键,报错:
Exception in thread "main" java.lang.RuntimeException: primaryKey of table "audio_view" required by active record pattern
我查了下mysql中视图是无法建立主键的,现在有办法让_JFinalDemoGenerator自动生成视图对应的model类吗?
继承一下 MetaBuilder 这个类,覆盖掉其中的 getTablesResultSet(...) 方法,去掉其中的 "VIEW" 参数,再将继承类注入到 Generator 中去即可
如果一定要生成视图的 view,可以扩展 MetaBuilder,覆盖掉 buildPrimaryKey(...) 方法,将主键限定改一下
特别注意 Active record 模式是需要主键值的,意味着生成的 Model 仍然无法使用该模式操作数据库,非 AR 模式可以使用 Db + Record 模式操作数据库