使用表数据在java中动态创建类
我有以下要求,, 我需要公开一个API,用户可以在其中发送一个自由形式的类似“查询”的表达式,并且我需要返回true/false。 例如:对于汽车对象,如果查询是使用表数据在java中动态创建类,java,dynamic,collections,properties,Java,Dynamic,Collections,Properties,我有以下要求,, 我需要公开一个API,用户可以在其中发送一个自由形式的类似“查询”的表达式,并且我需要返回true/false。 例如:对于汽车对象,如果查询是 " (make = 'FORD' AND year IN (1990,1991)) OR type = 'SUV') ". 但是,“make”“year”或“type”来自外部填充的表 TABLE CAR_PROPERTIES ( propertyName VARCHAR2(40), propertyValue VARCHAR2
" (make = 'FORD' AND year IN (1990,1991)) OR type = 'SUV') ".
但是,“make”“year”或“type”来自外部填充的表
TABLE CAR_PROPERTIES (
propertyName VARCHAR2(40),
propertyValue VARCHAR2(10)
)
我首先遍历其他连接表来加载属性
因此,如果有一个新属性(和相应的值),我需要在查询中支持
到目前为止,我所做的就是:
我不喜欢动态创建新类。寻找任何指针或解决方案 Raj-对您的设计只有很少的建议和灵感:
- ODataAPI允许用户使用RESTful“代数”查询数据,使用客户表达式OData4J句柄映射
- QueryDSL:
- SQLDSL:
还有一个关于Neo4J的教程,我也将其用于类似目的:
谢谢你的快速回复。我不想做任何ORM,我可以要求用户遵循查询的任何语法。我的主要问题是如何创建可以查询的java对象。具体来说,我有car类,但当应用程序启动时,它没有“make”、“year”作为属性。这些是我装的桌子上的,我明白了。不要试图在这里变得太花哨:-但是我会考虑一种类似于图的结构,也许是嵌入的NeN4J或者更简单的,在这里你可以在事实之后添加一些属性,有别名等等,并查询这些。也许太贵了,但也给了你灵活性:这里有一些与你所寻找的类似的例子: