gpt4 book ai didi

java - 更改 hibernate.cfg.xml 文件中的默认命名策略

转载 作者:太空宇宙 更新时间:2023-11-04 12:15:25 25 4
gpt4 key购买 nike

我试图更改 hibernate.cfg.xml 中的默认命名策略,但没有成功:

<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
...
<property name="cfg.namingStrategy">com.kestuboof.util.LowercaseNamingStrategy</property>

我的策略是从不打电话。

最佳答案

数据库对象和模式元素的命名约定由所使用的 org.hibernate.cfg.NamingStrategy 接口(interface)的实现控制。 Hibernate 3.6 有该接口(interface)的四种实现:

org.hibernate.cfg.DefaultComponentSafeNamingStrategyorg.hibernate.cfg.DefaultNamingStrategyorg.hibernate.cfg.EJB3NamingStrategyorg.hibernate.cfg.ImprovedNamingStrategy

我决定通过扩展并重写其 classToTableName() 方法来创建自定义命名策略。我的实现的源代码如下:

import org.hibernate.cfg.ImprovedNamingStrategy;

public class CustomNamingStrategy extends ImprovedNamingStrategy {

private static final String PLURAL_SUFFIX = "s";


@Override
public String classToTableName(String className) {
String tableNameInSingularForm = super.classToTableName(className);
return transformToPluralForm(tableNameInSingularForm);
}

private String transformToPluralForm(String tableNameInSingularForm) {
StringBuilder pluralForm = new StringBuilder();

pluralForm.append(tableNameInSingularForm);
pluralForm.append(PLURAL_SUFFIX);

return pluralForm.toString();
}
}

下一步是配置 Hibernate 以使用我的自定义命名策略。如果您使用 Hibernate,您可以

您可以通过调用 Configuration 类的 setNamingStrategy() 方法来设置对自定义命名策略的引用,如 Hibernate 引用文档的实现命名策略部分中所述。

您可以在 Hibernate XML 配置文件中将 hibernate.ejb.naming_strategy 属性的值设置为 CustomNamingStrategy,如《Hibernate 引用手册》的 XML 配置部分中所述。

如果您使用JPA,您可以通过在persistence.xml中将hibernate.ejb.naming_strategy属性的值设置为CustomNamingStrategy来设置使用的命名策略

关于java - 更改 hibernate.cfg.xml 文件中的默认命名策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39464515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com