gpt4 book ai didi

Hibernate 将@Table(name) 更改为小写

转载 作者:行者123 更新时间:2023-12-03 08:16:35 24 4
gpt4 key购买 nike

我在 Hibernate 中有一个每个类继承的表。

@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class A {
}

@Entity
@Table(name="B")
public class B extends A {
}

@Entity
@Table(name="C")
public class C extends A {
}

我只是想验证架构。我已经在 db 中有 B 和 C 表。

我正在使用 <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>但我认为指定@Table(name) 会覆盖命名策略的行为!

为什么 hibernate 将 @Table 中指定的名称转换为小写并搜索 b 和 c 而不是 B 和 C?如何避免呢?

最佳答案

如果您使用的是 JPA 2.0,规范会说:

可以通过指定 <delimited-identifiers/> 来指定将所有用于持久性单元的数据库标识符视为定界标识符。中的元素对象/关系 xml 映射文件的持久性单元默认值元素。如果 <delimited-identifiers/>指定了元素,它不能被覆盖。

此设置应使 Hibernate 使用表的大写名称,因为这是您在注释中指定名称的方式。

关于Hibernate 将@Table(name) 更改为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13489932/

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