gpt4 book ai didi

java - 使用属性类型信息 Hibernate NamingStrategy

转载 作者:行者123 更新时间:2023-11-30 12:01:22 25 4
gpt4 key购买 nike

我正在为我们的模式编写一个 Hibernate NamingStrategy。

我们的遗留模式(出于某种原因!)在列名称中包含类型信息。例如:

strproperty
intcustomer

我正在从 NamingStrategy 接口(interface)实现以下方法:

public String propertyToColumnName(String propertyName)

我想知道上述属性的 Java 类型,以便我可以实现我们的命名策略:

public String getProperty() {
return this.property()
}

会自动映射到 strproperty。

为了论证,说这是我设想的工作方式(我知道这种方法不存在):

public String propertyToColumnName(Object propertyName, Class propertyType) {
if (propertyType instanceof String) {
return "str" + propertyName;
} else {
return "int" + propertyName;
}
}

有没有办法从 Hibernate 的命名约定 Hook 中确定 Java 属性的类型?

提前致谢。

最佳答案

我不认为接口(interface)的设计考虑到了这一点 - 乍一看似乎没有任何方法可以知道 propertyToColumnName() 的调用者正在查询什么类

但是,我注意到 propertyToColumnName() 的 javadoc 说它返回“...属性路径表达式 的列名”。可能值得研究 Hibernate 将什么 String 传递给此方法:如果它实际上完全符合类名,那么您可以解析出类名并对该类使用反射来确定属性类型。

或者,不要忘记您总是可以直接在您的映射文件中指定列名(或者在您的注释中,如果您使用它们,我想):

这可能是一种更简单的方法。

关于java - 使用属性类型信息 Hibernate NamingStrategy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/820118/

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