我有一个类别休眠模型:
@Entity
@Table(name = "category")
public class Category {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id")
private long id;
@Column(name = "type")
private String type;
其中有一个类型字符串字段。我也有一个Java枚举,它表示类别的类型:
public enum CategoryType {
INCOME, OUTCOME;
}
我想用它代替字符串类型。SQL在varchar参数中接受两个不同的值:CategoryIncome
或CategoryOutcome
。我希望Category模型类接受一个枚举变量-
并在休眠要求时以某种方式将其映射到字符串。
可能吗?
是的,有可能。它应该是:
@Enumerated(EnumType.STRING)
@Column(name = "category_type")
private CategoryType categoryType;
问题内容: 我有一个类别hibernate模型: 其中有一个类型字符串字段。我也有一个Java枚举,它表示类别的类型: 我想用它代替字符串类型。SQL在varchar参数中接受两个不同的值:或。我希望Category模型类接受一个枚举变量- 每当hibernate要求它时,都以某种方式将其映射到字符串。 可能吗? 问题答案: 是的,有可能。它应该是:
我有一个类别Hibernate模型: 它们具有类型字符串字段。另外,我还有一个Java枚举,它表示类别的一种类型:
问题内容: 我需要预先将没有实现接口的枚举映射到现有数据库,该数据库使用将该枚举存储在与所有者类相同的表中。 在这种情况下应如何处理映射?持久化到数据库不会改变,因为实现该接口的所有枚举都将具有不同的值,但是我不确定应如何从数据库中检索对象(我是否需要自定义映射器,它将尝试实例化一个使用指定的enum类进行枚举吗?Hibernate是否本身支持此功能?)。 问题答案: 可以创建一个自定义(例如th
问题内容: Hibernate提供的注释支持使用或两种类型的映射。当我们使用映射时,它使用的“名称” 而不是Enum 的表示形式。在数据库列仅包含一个字符的情况下,这是一个问题。例如,我有以下枚举: 当我坚持枚举使用,即休眠尝试在数据库中存储的值是开放的。但是,我的数据库列仅包含一个字符,因此会引发异常。 克服这个问题的一个办法是改变枚举类型持有单个字符(如,代替,)。但是,这降低了可读性。有什么
我正在使用以下代码来包含枚举值和与之关联的相应字符串。我想知道是否有更简单的方法来实现这一点?
问题内容: 我有一张桌子DEAL和一张桌子DEAL_TYPE。我想映射以下代码: 问题在于数据已经存在于数据库中。而且我很难将类映射到数据库。 数据库看起来像这样: 我知道我可以在交易类型之间使用简单的@OneToMany关系,但是我更喜欢使用枚举。这可能吗? 我几乎可以通过使用EnumType.ORDINAL类型来使其工作。但不幸的是,我的交易类型表中的ID不是连续的,并且不是从1开始。 有什么