当试图从数据库检索记录时,Im获取了枚举类的未知名称值。使用jsf 2.0,jpa。休眠异常:枚举类的未知名称值
在我的数据库可能的值是 'F' 或 'J'
枚举:
public enum TipoPessoa {
FISICA ("F", "Física"),
JURIDICA ("J", "Jurídica");
private final String id;
private final String descricao;
private TipoPessoa(String id, String descricao){
this.id = id;
this.descricao = descricao;
}
public String getId() {
return id;
}
public String getDescricao(){
return descricao;
}
}
实体:
@Column(nullable=false, length=1)
private TipoPessoa tipoPessoa;
public TipoPessoa getTipoPessoa() {
return tipoPessoa;
}
public void setTipoPessoa(TipoPessoa tipoPessoa) {
this.tipoPessoa = tipoPessoa;
}
当我尝试阅读来自DB的记录我得到了错误
你能帮我解决这个问题吗?感谢
堆栈跟踪:
javax.servlet.ServletException:为枚举类br.com.aaa.xxx.entidade.TipoPessoa未知名值:F javax.faces.webapp.FacesServlet.service( FacesServlet.java:606) br.com.aaa.filtro.FiltroEncode.doFilter(FiltroEncode.java:26) 根源
javax.ejb.EJBTransactionRolledbackException:用于枚举类br.com.aaa未知的名称值。 xxx.entidade.TipoPessoa:F .... ......
显示堆栈跟踪 – surfealokesea
您正在执行映射错误。 Hibernate应该如何知道如何映射枚举类型?见例如[这个问题](http://stackoverflow.com/questions/417062/enumerations-in-hibernate)。 –
@surfealokesea stacktrace在问题中更新。 – Al2x