JSF和/或SEAM中是否有用于Y / N和布尔值的内置转换器与h:selectBooleanCheckbox一起使用?

| 如果实体的属性定义为
private String noWstManagedFlg;
并且已将数据库约束设置为强制执行\'Y \'或\'N \'。是否可以使用h:selectBooleanCheckbox内置的Y N到布尔型转换器?还是我需要在返回布尔值的实体上添加自己的转换器和/或属性?
<h:selectBooleanCheckbox value=\"#{entity.noWstManagedFlg}\" />
    
已邀请:
Seam中没有这样的转换器,但是如果您的JPA实现是Hibernate,则可以使用\'
yes_no
\'类型映射该属性并将其在实体中为布尔值。
@Type(type= \"yes_no\")
private boolean noWstManagedFlg;
    
根据经验和我阅读的内容,h:selectBooleanCheckbox不支持转换器。我编写了一个转换器,可以将\“ Y \” / \“ N \”转换为true / false。 \“ getAsString \”方法会如您所愿地被调用,但是\“ getAsObject \”方法不会被调用。 @Stefano是正确的最佳方法是在实体属性上使用Hibernate的“ yes_no \”或“ true_false \”类型。 使用\'@ Type(type = \“ yes_no \”)\'时遇到问题。首先,休眠模式无法将\“ Y \” / \“ N \”字符串正确转换为true / false值。其次,尝试更新实体会导致程序挂起。使用以下映射为我解决了这些问题,现在一切正常。
@Type(type = \"org.hibernate.type.YesNoType\")
private boolean noWstManagedFlg;
    

要回复问题请先登录注册