在我的应用程序中,每个 Foo 都有一个类别。Foo.Category 是类 Foo 中的一个内部枚举。在其给定的表单页面上创建 Foo 时,用户从键入到枚举的下拉列表中选择一个类别。但是,此选择是可选的。
现在,在另一个页面上,我希望能够按名称和类别搜索 Foo。此搜索表单CheckBoxMultipleChoice<Foo.Category>
也键入了相同的内部枚举。检查的值被发送到 DAO,它使用“where category in”子句查询我的数据库。
我想在复选框中添加“空白/无”选项,以便在发送到 DAO 时,如果选中,我可以在查询中添加“或类别为空”。由于我的复选框是键入到枚举中的,这甚至可能吗?
编辑:不确定这是否重要,但我的枚举具有由 SHORTNAME 指定的值,但每个都有一个字符串 LongerAndMoreDescriptiveName,并且枚举覆盖toString()
以返回此值。SHORTNAME 是我存储在数据库中的内容,并在 where 子句中使用,但 Longer 是 UI 上显示的内容。我曾短暂考虑过更改为 CheckBoxMultipleChoice 并添加空白选项,但我将如何解决值之间的差异?