|
|
1
12
“查询对象模式”中的“模式”一词放错了位置。这不是真正的设计模式。“查询对象”只是 Interpreter Pattern . 遗产 Hibernate Criteria API 与现代 JPA2 Criteria API 是将它与 Builder Pattern . 关于你的问题:
我建议你看看 JPA2 . |
|
|
2
4
查询对象 表示数据库查询的对象。 有关完整描述,请参阅 here SQL可以是一种复杂的语言,许多开发人员并不特别熟悉它。此外,您需要知道组成查询的数据库模式是什么样子的。您可以通过创建专门的finder方法来避免这种情况,这些方法将SQL隐藏在参数化方法中,但这使得很难形成更多的即席查询。如果数据库模式发生变化,它还会导致SQL语句中的重复。 一个查询对象是一个解释器[四个一组],也就是说,一个对象的结构,可以形成一个SQL查询。可以通过引用类和字段而不是表和列来创建此查询。这样,编写查询的人员就可以独立于数据库模式来完成这项工作,并且对模式的更改可以在单个位置进行本地化。 |
|
|
3
2
我在这里为nhibernate编写了一个C实现: https://github.com/shaynevanasperen/NHibernate.Sessions.Operations . 它通过使用这样的接口工作:
给定这样的POCO实体类:
您可以这样构建查询对象:
然后像这样使用它们:
如果你喜欢它,你可以把它移植到Java。 以下是一些其他示例: https://lostechies.com/jimmybogard/2012/10/08/favor-query-objects-over-repositories/ http://www.mrdustpan.com/command-query-objects-with-dapper#disqus_thread http://crosscuttingconcerns.com/CommandQuery-Object-pattern |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 11 月前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 11 月前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 11 月前 |
|
pebble unit · 如何检查以前缀开头、以后缀结尾的属性(不是属性值) 11 月前 |
|
|
rudraraj · java中未声明最终变量 11 月前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 11 月前 |