我正在对Flex仪表板进行增强,以允许用户保存搜索.我在服务器端使用BlazeDS和Java / Spring / SpringJdbc.我的问题是:您如何为具有一个或多个条件的搜索建模,例如: 2009-10-01至2009-10-31之间的价值日期货币=’...
我正在对Flex仪表板进行增强,以允许用户保存搜索.我在服务器端使用BlazeDS和Java / Spring / SpringJdbc.
我的问题是:您如何为具有一个或多个条件的搜索建模,例如:
> 2009-10-01至2009-10-31之间的价值日期
>货币=’美元’
>银行名称以’First’开头
我的第一个尝试是将标准分为3种类型:
>数字标准
>日期标准
>字符串标准
每种标准类型都有一组不同的比较运算符:
>数字运算符:=,>,> =,<,< =,<>
>日期运算符:之前,之后,之间
>字符串运算符:以,Ends with,contains开头
我有代码来识别这些操作符.
我的对象模型是一个SearchCriteria接口和3个实现它的类:NumericCriteria,DateCriteria和StringCriteria
所有这些类都映射到具有以下列的同一个表:
- SAVED_SEARCH_ID: id of the saved search
- SEQ_NUM: criteria order. We want to load the criteria in the same order each time
- CRITERIA_TYPE: Operator code. I can use this later to determine what kind of criteria this is.
- FIELD: currency, valueDate, bank, etc
- FIRST_VALUE_NUMERIC
- SECOND_VALUE_NUMERIC
- FIRST_VALUE_DATE
- SECOND_VALUE_DATE
- FIRST_VALUE_STRING
- SECOND_VALUE_STRING
有更清洁的方法吗?我并不是对数据模型的疯狂,但我找不到关于这个主题的任何资源…所有评论都表示赞赏,无论多么残忍:)
解决方法:
您可以将条件类序列化为XML并保留XML,而不是实现庞大的模式.
本文标题为:java – 在数据库中存储搜索条件
基础教程推荐
- Java网络编程之简易聊天室的实现 2023-06-16
- 分享JVM 的四种引用方式 2023-02-20
- Java实现经典游戏之大鱼吃小鱼 2023-04-23
- 解决springboot服务启动报错:Unable to start embedded contain 2023-04-17
- java – mysql使用ResultSet时内存(RAM)使用量增加了吗? 2023-11-08
- Java append函数 2023-10-08
- java – JBoss AS / Wildfly中的多用户数据库连接池 2023-11-06
- Dubbo负载均衡策略介绍 2023-05-08
- MongoDB / Morphia将技术ID保存为ObjectId,尽管它是Java中的String 2023-11-08
- 关于Mybatis与JPA的优缺点说明 2022-12-16