Играя с Linq (с SQL и объектами), а также с Entity Framework от Microsoft в последнее время, мне было интересно, что такое эквиваленты non.Net(в частности, Java)?
Каковы эквиваленты Java для Linq и Entity Framework
Ответ 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 в строке