最近使用过Linq(对SQL和对象)以及Microsoft的Entity Framework,我想知道non.Net(特别是Java)的等价物是什么?
答案 0 :(得分:19)
考虑使用Querydsl:http://www.querydsl.com
它支持JPA / Hibernate,JDO,SQL和Collections。
Querydsl是完全类型安全的,支持IDE中的自动完成功能,并在多个后端提供常见的查询语法。
我是Querydsl的维护者,不久前我写了comparison to other frameworks。
略有偏见,但显示出不同的重点
较新的框架也使用闭包语法进行实验。
答案 1 :(得分:4)
有一个名为JoSQL的Java项目,它使用类似SQL的语法提供对象查询功能 虽然我自己没有使用它,但我知道它用于一些重量级的应用程序。
答案 2 :(得分:3)
Java没有Linq等价物。然而,Scala是一种编译为Java字节代码的函数式语言,它有一些结束:扩展的for循环语法。
答案 3 :(得分:2)
查看JaQue。
答案 4 :(得分:2)
对于数据库繁重的工作,SQLJ可能是一种选择。缺点是它不是纯Java,需要预处理器。
答案 5 :(得分:2)
对于LINQ(LINQ to Objects更准确),您可以从Java 8
开始使用Streams这对数据库不起作用,但仅适用于集合和列表等内部对象
它非常强大,但不如LINQ(在我看来)完整
查看本教程 - http://www.oracle.com/technetwork/articles/java/ma14-java-se-8-streams-2177646.html
至于实体框架,我还没有发现任何强大的功能,但是没有尝试过其他答案中提供的所有解决方案
答案 6 :(得分:1)
除非您使用javacc创建自己的等效项,否则您将找不到LINQ的等效项。
在有人找到可行的方法之前,有一些很好的选择,例如
答案 7 :(得分:0)
没有确切的替代方案,因为LINQ是普遍的。但是,如果我们讨论的是LINQ to SQL,那么当您将JPA与支持“Inject语言”功能的IDE一起使用时,它就是一种替代方案。例如。 IDEA将在字符串
中全面完成JPA查询