我有一个模型,有几个属性。属性可以是原始(String)或复杂(Object)。用户可以对每个基本属性进行查询。我想知道是否有一种简单的方法来动态构建查询。我使用Java和Hibernate。动态查询多个属性与休眠
模型
public class Model {
String prop1;
Point prop2;
List<Shape> prop3;
}
Point
和Shape
是可以包含基元或对象的对象。查询的一个例子是所有实例,其中prop1 =“A”,坐标是x = 3和y = 8,其中一个形状是圆形。 prop1 =“A”,prop2.x = 3,prop2.y和prop3.get(i).type =“Circle”;我们将不得不遍历所有的prop3实例。
我的第一个想法是不可维护和低效的。它包括对所有基本属性进行查询,然后合并结果。
- 获取所有实例,其中为prop1 = “A”
- 获取所有实例,其中prop2.x = 3 和prop3 = Y;
- 获取所有的实例,其中的一个 Shape.type =“Circle”;
- 获取的所有3台
的交集是否有可能在一个更好(更聪明)的方式解决这个问题的任何现有的库或算法?
感谢
你想查询一个Shape的“Java类型”还是你有一个字段类型? – 2010-08-12 14:59:49
我的例子与我的真实模型相比非常简单,但是标准查询就是我正在寻找的。 – Sydney 2010-08-13 18:39:19