Java Hibernate或JPA中的列命名策略

Java Hibernate或JPA中的列命名策略,java,hibernate,jpa,Java,Hibernate,Jpa,我见过许多示例和实际项目,其中数据库表列具有与表名对应的唯一前缀。小例子: CREATE TABLE customers (cus_id BIGINT, cus_name VARCHAR(255), cus_adr_id BIGINT); CREATE TABLE addresses (adr_id BIGINT, adr_postcode CHAR(5)); 如何在Hibernate或JPA中实现这一点 我已经尝试实现PhysicalNamingStrategy,但它似乎无法访问实体本身,因

我见过许多示例和实际项目,其中数据库表列具有与表名对应的唯一前缀。小例子:

CREATE TABLE customers (cus_id BIGINT, cus_name VARCHAR(255), cus_adr_id BIGINT);
CREATE TABLE addresses (adr_id BIGINT, adr_postcode CHAR(5));
如何在Hibernate或JPA中实现这一点

我已经尝试实现PhysicalNamingStrategy,但它似乎无法访问实体本身,因此在设置列名时我无法了解实体


我现在希望有一种比在每个变量声明之上放置注释更好的方法。这相当冗长,不符合我对ORM的期望,在我看来,ORM应该提供一种理想的自动映射方式。此外,实体之间共享的ID和其他属性必须保留在基类实体中,这使得注释更加复杂。

不,您必须创建自定义命名策略。你应该参考这篇文章,上面提到的文章并没有提到同样的情况:它们有一个常量前缀,而我有一个基于表名的前缀。此外,我正在使用Hibernate 5,这意味着我不能使用改进的命名策略。我必须创建PhysicalNamingStrategy或ImplicitNamingStrategy的实现。不,您必须创建自定义命名策略。你应该参考这篇文章,上面提到的文章并没有提到同样的情况:它们有一个常量前缀,而我有一个基于表名的前缀。此外,我正在使用Hibernate 5,这意味着我不能使用改进的命名策略。我必须创建PhysicalNamingStrategy或ImplicitNamingStrategy的实现。