我不知道如何将实体(使用枚举)保存到数据库中。 当我填写这样的表格时;
form.setTypZamowienia(SlownikZamowienie.SENIOR)
然后666存储在数据库中。但是当我尝试这样的时候;
form.setTypZamowienia(SlownikZamowienie.valueOf(request.getParameter("typKlienta").trim()));
0存储在数据库中。
如何使这项工作? 对于任何帮助,我将非常感激。
我的枚举:
public enum SlownikZamowienie
{
JUNIOR(42),
SENIOR(666),
PRINCIPAL(31416);
private final int wartosc;
SlownikZamowienie(int wartosc) {
this.wartosc = wartosc;
}
}
我的实体:
package test.jpa.domain;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import test.enums.SlownikZamowienie;
@Entity
@Table(name="Piess")
public class Pies implements Serializable {
private static final Long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id")
int id;
@Column(name = "imie")
String imie;
@Enumerated
@Column(name = "rasa")
SlownikZamowienie typzamowienia;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getImie() {
return imie;
}
public void setImie(String imie) {
this.imie = imie;
}
public SlownikZamowienie getTypzamowienia() {
return typzamowienia;
}
public void setTypzamowienia(SlownikZamowienie typzamowienia) {
this.typzamowienia = typzamowienia;
}
}
答案 0 :(得分:0)
从JPA 2.1开始,您可以使用属性转换器(在Hibernate世界中称为UserType)。有关如何实施此类解决方案的详细信息,请参阅这两篇文章: