Saya perlu menggunakan SQL mentah dalam Spring Data Repository, apakah ini mungkin? Semua yang saya lihat di sekitar @Query
selalu berbasis entitas.
java
hibernate
spring-data-jpa
Webnet
sumber
sumber
Jawaban:
Kutipan dari dokumen referensi JPA Spring Data .
Juga, lihat bagian ini tentang cara melakukannya dengan kueri asli bernama.
sumber
@Query(value = "SELECT * FROM USERS WHERE EMAIL_ADDRESS = ?1", nativeQuery = true)
YA, Anda dapat melakukan ini dengan cara berikut:
1. Dengan CrudRepository (Proyeksi)
Spring Data Repositories biasanya mengembalikan model domain saat menggunakan metode kueri. Namun, terkadang, Anda mungkin perlu mengubah tampilan model tersebut karena berbagai alasan.
Misalkan entitas Anda seperti ini:
Sekarang kelas Proyeksi Anda seperti di bawah ini. Itu bisa bidang-bidang yang Anda butuhkan.
Dan
Your Data Access Object(Dao) is like bellow
:Sekarang
ArrayList<IUserProjection> findUserUsingRollNo(String rollNo)
akan memberi Anda daftar pengguna.2. Menggunakan EntityManager
Misalkan kueri Anda adalah " pilih id, nama dari pengguna di mana roll_no = 1001 ".
Di sini query akan mengembalikan objek dengan kolom id dan nama. Kelas Respon Anda seperti di bawah ini:
Kelas Respon Anda seperti:
Disini konstruktor UserObject akan mendapatkan Object Array dan mengatur data dengan objek.
Fungsi eksekusi kueri Anda seperti di bawah ini:
Di sini Anda harus mengimpor paket di bawah ini:
Sekarang kelas utama Anda, Anda harus memanggil fungsi ini. Pertama, dapatkan EntityManager dan panggil
getUserByRoll(EntityManager entityManager,String rollNo)
fungsi ini . Prosedur panggilan diberikan di bawah ini:Ini Impornya
dapatkan
EntityManager
dari cara ini:Sekarang Anda memiliki data di userObject ini.
catatan:
query.getSingleResult () mengembalikan larik objek. Anda harus mempertahankan posisi kolom dan tipe data dengan posisi kolom query.
query mengembalikan array dan itu
[0] --> id and [1] -> name
.Info lebih lanjut kunjungi utas ini dan utas ini
Terima kasih :)
sumber
Dimungkinkan juga untuk menggunakan repositori JDBC Spring Data , yang merupakan proyek komunitas yang dibangun di atas Spring Data Commons untuk mengakses database dengan SQL mentah, tanpa menggunakan JPA.
Ini kurang kuat dari Spring Data JPA, tetapi jika Anda menginginkan solusi ringan untuk proyek sederhana tanpa menggunakan ORM seperti Hibernate, solusi tersebut layak untuk dicoba.
sumber
kita bisa menggunakan createNativeQuery ("Disini Nagitive SQL Query");
sebagai contoh :
sumber
em
variabel.Dimungkinkan untuk menggunakan kueri mentah dalam Spring Repository.
sumber