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纯粹主义者都不会高兴:)
仔细搜索一下,我发现最佳实践是使用 。
我对如何使用它有些困惑。你能帮我举个例子吗?
回答:
您可以将您的号码映射enum
到String
或序号。映射到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