JPA实体中的枚举字段

我问这个问题有点傻,但是我找不到这个问题的简单答案。

以这个简单的实体为例:

@Entity

@Table( name="clienti" )

public class Cliente implements Serializable {

private static final long serialVersionUID = 1L;

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

@Column(name = "id")

private Long id;

private String nome;

private String cognome;

//...

}

它代表一个人,因此我想添加一个“ ”属性。

这将是“男性”或“女性”。所以呢?

我可以使用String,并要记住,“ m”代表男性,“ f”代表女性。

或者,我可以使用布尔值“ isMale”(是或否)。

但是,我认为无论哪种情况,Hibernate纯粹主义者都不会高兴:)

仔细搜索一下,我发现最佳实践是使用 。

我对如何使用它有些困惑。你能帮我举个例子吗?

回答:

您可以将您的号码映射enumString或序号。映射到String是更可移植的方法,因为映射将在更改枚举顺序后仍然存在。

使用您的示例:

@Entity

@Table( name="clienti" )

public class Cliente implements Serializable {

...

@Enumerated(EnumType.STRING)

private Gender gender;

...

}

字符串映射将使用枚举类型的简单名称,因此数据库中将有两个可能的值-“ Male”和“ Female”

public enum Gender { MALE, FEMALE }

持久性提供程序负责映射,因此在您的代码中,您可以继续使用Gender枚举,而不必担心字符串或序数。

以上是 JPA实体中的枚举字段 的全部内容, 来源链接: utcz.com/qa/407190.html

回到顶部