bom dia,
estava usando enum e não estava tendo problema algum até que
precisei fazer um relacionameto @OneToOne por exemplo e agora meu enum está retornando null
Classe address
[code]@OneToOne(mappedBy="address")
@JoinColumn(name="PERSON_ID")
private Person person;
@Enumerated(EnumType.STRING)
@Column(name="Country")
private Country country;[/code]
classe Person
@OneToOne(cascade={CascadeType.ALL}, fetch=FetchType.LAZY, orphanRemoval=true)
private Address address;
e para carregar o enum estava fazendo dentro MB
public Country[] getCountryValues() {
return Country.values();
}
Como eu disse esta funcionando, mas ao precisar usar um enum em uma classe que está fazendo relacionamento
ele me retorna null
Segue abaixo o erro
Target Unreachable, 'null' returned null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at org.primefaces.renderkit.InputRenderer.findImplicitConverter(InputRenderer.java:170)
at org.primefaces.renderkit.InputRenderer.getOptionAsString(InputRenderer.java:156)
Então pesquisando achei para criar um enum converter generico, mas não resolveu
Classe Enum Converter
[code]public class EnumConverter implements Converter{
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public Object getAsObject(FacesContext context, UIComponent component,String value) {
Class enumType = component.getValueExpression("value").getType(context.getELContext());
return Enum.valueOf(enumType, value);
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object object) {
if (object == null){
return null;
}
Enum<?> type = (Enum<?>) object;
return type.toString();
}
}[/code]
Alguém sabe como resolver isso
Att
Abri o tópico no forum errado, foi mal…
pode mover ele para desenvolvimento web