gpt4 book ai didi

java - Hibernate 生成带有 JPA @Enumerated 注释的 VARBINARY 列

转载 作者:行者123 更新时间:2023-11-30 09:55:54 42 4
gpt4 key购买 nike

Hibernates 正在生成带有 JPA @Enumerated 注释的 VARBINARY 列。我正在使用带 JTDS 驱动程序的 SQL Server 2005。映射非常简单:

@Basic
@Enumerated(EnumType.ORDINAL)
private MyEnum foo;

我会期望 Hibernate 生成一个整数列吗?我也试过 EnumType.STRING(期望 varchar 列)但没有成功。

请注意,我的应用运行良好;列类型使得检查数据库变得困难,并且在访问数据库时发出即席 SQL。

最佳答案

可能是 SQL Server 特定问题(也许您可以查看 Hibernate SQL Server 方言源以找出所使用的数据类型)。

通常,使用 EnumType.ORDINAL 映射可能不是一个好主意,出于同样的原因,在普通 Java 代码中使用枚举序数也不是一个好主意:添加或删除枚举值可能很容易破坏您的代码,因为它可能会更改现有枚举值的序号。这在 Effective Java, 2nd Ed 中有更详细的讨论。第 6 章,第 31 项。

我还找到了further arguments for this from the DB perspective .

关于java - Hibernate 生成带有 JPA @Enumerated 注释的 VARBINARY 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2617898/

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