Linq和Entity Framework的Java等价物是什么

时间:2009-07-04 22:28:04

标签: java linq entity-framework

最近使用过Linq(对SQL和对象)以及Microsoft的Entity Framework,我想知道non.Net(特别是Java)的等价物是什么?

8 个答案:

答案 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查询