JSF 和/或 SEAM 中是否有内置的 Y/N 和布尔值转换器可与 h:selectBooleanCheckbox 一起使用?
如果实体具有定义为的属性
private String noWstManagedFlg;
,并且数据库约束设置为强制执行“Y”或“N”。是否有内置的 YN 到布尔转换器可以与 h:selectBooleanCheckbox 一起使用?或者我是否需要在返回布尔值的实体上添加我自己的转换器和/或属性?
<h:selectBooleanCheckbox value="#{entity.noWstManagedFlg}" />
If an entity has the property defined as
private String noWstManagedFlg;
and the database is constraint is set to enforce a 'Y' or 'N'. Is there a built in Y N to boolean converter I can use with h:selectBooleanCheckbox? Or will I need to add my own converter and/or property on my entity that returns a boolean?
<h:selectBooleanCheckbox value="#{entity.noWstManagedFlg}" />
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Seam 中没有这样的转换器,但如果您的 JPA 实现是 Hibernate,您可以使用“
yes_no
”类型映射该属性,并在实体中将其设置为布尔值。There is no such converter in Seam, but if your JPA implementation is Hibernate, you can map that property with '
yes_no
' type and have it boolean in the entity.根据经验和我读过的内容, h:selectBooleanCheckbox 不支持转换器。我编写了一个转换器,可以将“Y”/“N”转换为真/假。 “getAsString”方法按照您的预期被调用,但“getAsObject”方法永远不会被调用。 @Stefano 是正确的,最好的方法是在实体属性上使用 Hibernate“yes_no”或“true_false”类型。
我在使用“@Type(type = "yes_no")”时遇到了问题。首先,休眠未能正确地将“Y”/“N”字符串转换为真/假值。其次,尝试更新实体会导致程序挂起。使用以下映射为我解决了这些问题,现在一切都按预期进行。
From experience and what I've read h:selectBooleanCheckbox does not support converters. I had written a converter that would convert "Y"/"N" to true/false. The "getAsString" method is called as you'd expect, but the "getAsObject" method is never called. @Stefano is right the best way to go is use the Hibernate "yes_no" or "true_false" Type on your entity property.
I ran into a problem when using '@Type(type = "yes_no")'. First of all the hibernate failed to properly convert the "Y"/"N" strings to true/false values. And secondly, trying to update an entity would cause the program to hang. Using the following mapping solved these issues for me and now everything works as expected.