@یاففدور یارمنکو
9+ سال توسعه دهنده جاوا
Jinq کتابخانه ای است که از جستجوی پایگاه داده در جاوا پشتیبانی می کند. این از LINQ .NET الهام گرفته شده است. یک توسعه دهنده می تواند از Java Stream API ، توابع استاندارد (به عنوان مثال) استفاده کند
String#contains
،
Math#abs
) ، و عملگرهای رابطه ای ، ریاضی و منطقی (به عنوان مثال == ،
List books = jinqDataProvider.streamAll(entityManager, Book.class)
.where(book - book.getPages() 50 && book.isPublished()).toList();
در این مثال ،
Book
یک metamodel تولید شده نیست بلکه یک کلاس موجودی JPA است. به نظر سحرآمیز است. زیر کاپوت ، Jinq از سریال سازی لامبدا و آنالیز کد بایت استفاده می کند. بیایید با یک مثال Spring Boot به بررسی Jinq بپردازیم.
وابستگی ها
وابستگی های زیر را در پرونده build.gradle اضافه کنید:
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.jinq:jinq-jpa:1.8.32'
کلاسهای نهاد
مثال را با دو جدول در پایگاه داده در نظر بگیرید:
books
و
authors
. کلاسهای موجودیت را اضافه کنید:
@Entity(name = "books")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
private boolean published;
private Integer pages;
@ManyToOne
@JoinColumn(name = "author_id")
private Author author;
// getters and setters
}
@Entity(name = "authors")
public...