我有以下要求,我需要公开一个 API,用户可以在其中发送一个自由形式的“查询”,如表达式,我需要返回真/假。例如:对于汽车对象,如果查询是
" (make = 'FORD' AND year IN (1990,1991)) OR type = 'SUV') ".
但是,“make”、“year”或“type”来自外部填充的表。
TABLE CAR_PROPERTIES (
propertyName VARCHAR2(40),
propertyValue VARCHAR2(10)
)
我首先遍历了其他连接表以加载属性。
所以,如果有新的属性(和对应的值),我需要在查询中支持。
到目前为止,这就是我所做的:
如果不需要向类添加动态属性,我知道我可以在我的集合上使用 JoSQL 之类的东西。
一旦应用程序开始使用 Java Tools API 或 javaassist,我就开始研究动态创建类。
客户坚持使用不需要添加新属性和部署代码的解决方案(尽管此 API 的“调用者”确实需要更改代码才能在查询中使用新属性)。
我不喜欢动态创建新类。寻找任何指示或解决方案。