You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Oracle ADF中创建含静态值的数据库源LOV

在JDeveloper 12c (12.1.3.0.0)中创建含静态"All"选项的动态颜色LOV

1. 创建动态数据源(获取数据库最新颜色)

首先创建**视图对象(VO)**来动态拉取数据库中的颜色数据:

  • 新建VO,基于你的颜色表,编写查询语句:
    SELECT color_name FROM colors ORDER BY color_name
    
  • 确保VO的color_name字段同时设为显示属性和返回属性,这样LOV能正确展示和传递选中值。
  • 在VO的「Tuning」标签页,设置缓存策略为Do Not Cache,保证每次打开LOV都会重新查询数据库,自动获取新增的颜色。

2. 添加静态"All"选项

有两种简洁的实现方式:

方式一:通过VO查询拼接静态值(推荐)

修改VO的查询语句,用UNION ALL把"All"静态值和数据库结果合并,同时控制排序让"All"排在最前面:

SELECT 'All' AS color_name, 1 AS sort_order FROM DUAL
UNION ALL
SELECT color_name, 2 AS sort_order FROM colors
ORDER BY sort_order, color_name

这种方式无需额外配置UI,LOV直接读取合并后的结果,天然支持动态更新。

方式二:通过组合数据源配置UI

如果不想修改VO,可在LOV组件中配置Combined Data Source:

  • 打开LOV组件的属性编辑器,进入「List of Values」→「List Data Source」
  • 选择「Combined Data Source」,先添加之前创建的颜色VO作为第一个数据源
  • 点击「Add Static List」,输入显示值和返回值均为"All"
  • 调整数据源顺序,把静态项移到最上方

3. 设置默认选中"All"

  • 直接在LOV绑定的UI组件(如inputText或selectOneChoice)属性中,设置defaultValue="All"
  • 同时确保后台Bean中对应的绑定属性,初始值也设为"All",避免页面加载时默认值不生效

4. 逻辑适配"All"选项

在后台处理查询逻辑时,判断选中值:

  • 若选中"All",则不添加颜色过滤条件
  • 若选中具体颜色,就用该值作为过滤条件

内容的提问来源于stack exchange,提问作者Cristian Reyes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:15:43