Подтвердить что ты не робот

Каковы эквиваленты Java для Linq и Entity Framework

Играя с Linq (с SQL и объектами), а также с Entity Framework от Microsoft в последнее время, мне было интересно, что такое эквиваленты non.Net(в частности, Java)?

4b9b3361

Ответ 1

Возможно, вы захотите проверить проект quaere. Его java-структура, которая добавляет способ сбора запросов, подобно тому, как работает LINQ.

Ответ 2

Рассмотрим использование Querydsl: http://www.querydsl.com

Он поддерживает JPA/Hibernate, JDO, SQL и коллекции.

Querydsl полностью безопасен для типов, поддерживает автозаполнение в IDE и предоставляет общий синтаксис запросов на нескольких множественных бэкэндах.

Я поддерживаю Querydsl, и некоторое время назад я написал сравнение с другими фреймворками.

Он слегка предвзятый, но показывает различный акцент

  • статически напечатано или нет
  • поддержка которых поддерживается
  • - это интерфейс для построения запроса, каскадный или нет

Более новые рамки также экспериментируют с синтаксисом закрытия.

Ответ 3

Существует Java-проект под названием JoSQL, который предоставляет возможности объектного запроса с синтаксисом типа SQL.
Хотя я не использовал его сам, я знаю, что он используется в некоторых тяжелых приложениях.

Ответ 4

Java не имеет эквивалента Linq. Однако Scala, функциональный язык, который компилируется в байт-код Java, имеет что-то закрывающее: синтаксис расширенного цикла.

Ответ 5

Посмотрите JaQue.

Ответ 6

Для работы с базой данных SQLJ может быть вариант. Недостатком является не чистая Java и требует предварительного процессора.

Ответ 7

Для более точного определения LINQ (LINQ to Objects) вы можете использовать потоки, начиная с Java 8

Это не работает для баз данных, но только для внутренних объектов, таких как коллекции и списки

Это действительно мощный, но не такой полный, как LINQ (на мой взгляд)

Посмотрите этот учебник - http://www.oracle.com/technetwork/articles/java/ma14-java-se-8-streams-2177646.html

Что касается Entity Framework, то нет ничего такого мощного, что я нашел еще, но не пробовал все решения, предоставленные в других ответах

Ответ 8

Вы не найдете эквивалент LINQ, если вы не используете javacc, чтобы создать свой собственный эквивалент.

До того дня, когда кто-то найдет жизнеспособный способ сделать это, есть несколько хороших альтернатив, таких как

Ответ 9

Нет никакой точной альтернативы, которая является универсальной, поскольку LINQ. Однако, если мы говорим о LINQ to SQL, тогда JPA является альтернативой, когда вы используете ее с помощью среды IDE, которая поддерживает функцию "Inject language". Например. IDEA выполнит полномасштабное завершение запроса JPA в строке