我有一个应用程序正在使用Play Framework 2.1.x与Ebean。我想使用SQL视图(PostgreSQL v9.3)而不是实际的表格。我试图将@Table注释中的“name”属性从实际的表名切换到查看名称。从视图中检索数据到Ebean模型很好,但是当有一个ManyToMany关联时,它会产生一个错误。问题在于Ebean为了在SQL查询中生成JOIN子句而使用的名称约定。在Play Framework 2.1.x中使用SQL视图与Ebean
例如,我有一个名为“customers”的表和一个名为“customers_view”的视图,以及ManyToMany与表“customertags”的关联。在这种情况下,Ebean使用桥表“customers_customerstags”生成JOIN子句。但是,当我将@ Table的名称属性更改为“customers_view”时,关联会混乱。 Ebean然后通过表“customers_view_customerstags”等来生成JOIN。
我知道这可以通过使用@JoinTable和@JoinColumn来解决,但首先我想问一些更有经验的程序员,如果有一些其他正确的方法如何在Play/Ebean中使用SQL视图,那么我失踪 ?
感谢您的回答。这就是我所害怕的。另一种解决方案是将实际表格重新命名为“customers_data”,然后创建名为“customers”的视图。那么命名约定应该匹配。 – spidla