classToTableName和;表名及;Hibernate NamingStrategy中的collectionTableName?
我正在使用hibernate注释,我想将类(表)名称更改为“t_xx”。classToTableName和;表名及;Hibernate NamingStrategy中的collectionTableName?,hibernate,Hibernate,我正在使用hibernate注释,我想将类(表)名称更改为“t_xx”。 但我不知道使用哪一种(classToTableName&tableName&collectionTableName)。您必须通过扩展类来创建自定义命名策略 以下是对这些方法的说明: classToTableName(java.lang.String):当您使用@Entity声明了一个类,并且没有任何`@表(name=“…”)时,将调用此方法从您的类名中获取DB表的名称 collectionTableName(…):当需要
但我不知道使用哪一种(classToTableName&tableName&collectionTableName)。您必须通过扩展类来创建自定义命名策略 以下是对这些方法的说明:
:当您使用classToTableName(java.lang.String)
声明了一个类,并且没有任何`@表(name=“…”)时,将调用此方法从您的类名中获取DB表的名称@Entity
:当需要联接表时,hibernate将调用此方法collectionTableName(…)
:当您与`@Table(name=“Table\u name”)一起声明了一个实体时,hibernate通过将name属性的值传递给该方法来调用该方法tableName(java.lang.String)
public String classToTableName(String className) {
return "t_"+super.classToTableName(className);
}
public String collectionTableName(String ownerEntity, String ownerEntityTable, String associatedEntity, String associatedEntityTable,String propertyName) {
return "t_"+super.collectionTableName(ownerEntity,ownerEntityTable,associatedEntity,associatedEntityTable,propertyName);
}
如果需要,如果要更改
@Table
注释中name
的属性值,可以覆盖tableName(String)
。@Table(name=“t_xx”)注释在类定义上应该可以工作。我有几个表,不想逐个更改它们。