in java we trust
Show Navigation Hide Navigation
  • Java SE
    • Java SE OCP
    • Java Puzzler
  • Effective Java
  • Servlet&JSP
  • Clean Code
  • JSF & PrimeFaces
    • JSF
    • Primefaces
  • Hibernate/JPA
    • EclipseLink/Hibernate JPA
    • Hibernate
  • Spring & Spring MVC
    • Spring 3.X
    • Spring 4.X
    • Spring MVC
  • Spring Boot
  • Design Patterns
  • JAX-RS
  • JAX-WS
  • Oracle DB
  • Apache Guys
    • Apache Maven
    • Apache Log4j
  • Github
  • Oneriler&Sertifika&Egitim
    • Oneriler
    • Online Java SE ve Java EE Egitimi artık UDEMY de!
    • Sektorden Oneriler
    • Oracle Sertifika Sinavlari
  • MongoDB
  • Test Tools
    • TestNG
    • Mockito
  • Anektod
  • Hakkımda

EclipseLink – 21 – Query – 04 – Where

Levent Erguder 20 December 2015 EclipseLink/JPA

Merhaba Arkadaslar,
Bu bolumde WHERE Clause’u inceleyecegiz.
Onceki ornegimizde kullandigimiz siniflar ve data uzerinden devam edebiliriz.

Ornegin salary degeri belirttigimiz degerden buyuk Employee’leri getirmek icin , ornegin 58000 den buyuk salary sahip Employee’ler icin ;

SELECT e from Employee30 e where e.salary > ?1

Yukaridaki JPQL sorgumuzun SQL karsiligi ;

SELECT * from Employee30 e where e.salary > 58000;
System.out.println("INPUT_PARAMETER");

List<Employee30> inputParameterList = jpqlService.executeResultListQuery(INPUT_PARAMETER, Employee30.class,58000);

for (Employee30 employee : inputParameterList) {
    System.out.println(employee);
}

Ornegimizi calistirdigimizda ;

INPUT_PARAMETER
Employee30 [id=5, name=Scott, surname=Brown, salary=60000]
Employee30 [id=6, name=Rod , surname=Johnson , salary=62000]
Employee30 [id=10, name=Sarah, surname=Proval, salary=59000]

BETWEEN

Bir baska ornek olarak ;

SELECT e FROM Employee30 e WHERE e.salary >= ?1 AND e.salary <= ?2

JPQL sorgumuzun SQL karsiligi ;

SELECT * from Employee30 e WHERE e.salary >=45000 AND e.salary <=55000;
System.out.println("GREAT_AND_LESS");

List<Employee30> greatAndLessList = jpqlService.executeResultListQuery(GREAT_AND_LESS, Employee30.class,45000, 55000);

for (Employee30 employee : greatAndLessList) {
    System.out.println(employee);
}

Ornegimizi calistirdigimizda , maas araligi [45000 – 55000] olan Employee’ler listenelecektir.

GREAT_AND_LESS
Employee30 [id=1, name=John, surname=Robbins, salary=55000]
Employee30 [id=2, name=Rob, surname=Freeman, salary=53000]
Employee30 [id=7, name=Sue, surname=Bellows, salary=54000]
Employee30 [id=8, name=Stephanie, surname=Whitmore, salary=45000]
Employee30 [id=9, name=Jennifer, surname=Libby, salary=52000]

Benzer ornegi BETWEEN keyword’unu kullanarak da yapabiliriz ;

SELECT e FROM Employee30 e WHERE e.salary BETWEEN ?1 AND ?2"

JPQL sorgumuzun SQL karsiligi ;

SELECT * FROM Employee30 e WHERE e.salary BETWEEN 45000 AND 55000;
System.out.println("BETWEEN_EXPRESSION");

List<Employee30> betweenList = jpqlService.executeResultListQuery(BETWEEN_EXPRESSION, Employee30.class,45000, 55000);

for (Employee30 employee : betweenList) {
     System.out.println(employee);
}

Ornegimizi calistirdigimizda salary araligi [45000 – 55000] disinda olan Employee’ler gelecektir

BETWEEN_EXPRESSION
Employee30 [id=1, name=John, surname=Robbins, salary=55000]
Employee30 [id=2, name=Rob, surname=Freeman, salary=53000]
Employee30 [id=7, name=Sue, surname=Bellows, salary=54000]
Employee30 [id=8, name=Stephanie, surname=Whitmore, salary=45000]
Employee30 [id=9, name=Jennifer, surname=Libby, salary=52000]

NOT anahtar kelimesini kullandigimizda ;

SELECT e FROM Employee30 e WHERE e.salary NOT BETWEEN ?1 AND ?2
SELECT * FROM Employee30 e WHERE e.salary NOT BETWEEN 45000 AND 55000;
System.out.println("NOT_BETWEEN_EXPRESSION");

List<Employee30> notBetweenList = jpqlService.executeResultListQuery(NOT_BETWEEN_EXPRESSION, Employee30.class,45000, 55000);

for (Employee30 employee : notBetweenList) {
    System.out.println(employee);
}

Ornegimizi calistirdigimizda ;

NOT_BETWEEN_EXPRESSION
Employee30 [id=3, name=Peter, surname=Gunton, salary=40000]
Employee30 [id=4, name=Frank, surname= Sadler, salary=41000]
Employee30 [id=5, name=Scott, surname=Brown, salary=60000]
Employee30 [id=6, name=Rod , surname=Johnson , salary=62000]
Employee30 [id=10, name=Sarah, surname=Proval, salary=59000]
Employee30 [id=11, name=Marcus, surname=Ragno, salary=35000]
Employee30 [id=12, name=Joe, surname=Hatlen, salary=36000]
Employee30 [id=13, name=Jack, surname=Snooze, salary=43000]

LIKE

SELECT d FROM Department5 d WHERE d.name LIKE ?1
SELECT * FROM Department5 d WHERE d.name LIKE 'Eng%';
System.out.println("LIKE_EXPRESSION");

List<Department5> likeList = jpqlService.executeResultListQuery(LIKE_EXPRESSION, Department5.class,"%Eng%");

for (Department5 department : likeList) {
   System.out.println(department);
}

Ornegimizi calistirdigimizda ;

LIKE_EXPRESSION
Department4 [id=1, name=Engineering]

IN

Address state bilgisi NY ya da NJ olan Employee kayitlarini getirmek istersek ;

SELECT e FROM Employee30 e WHERE e.address.state IN (?1, ?2)
SELECT * FROM Employee30 e JOIN Address2 a on e.address_id = a.id 
WHERE a.state IN ('NY' , 'NJ');
System.out.println("IN_EXPRESSION");

List<Employee30> inExpression = jpqlService.executeResultListQuery(IN_EXPRESSION, Employee30.class,"NY","NJ");

for (Employee30 employee : inExpression) {
    System.out.println(employee);
}
IN_EXPRESSION
Employee30 [id=1, name=John, surname=Robbins, salary=55000]
Employee30 [id=2, name=Rob, surname=Freeman, salary=53000]
Employee30 [id=3, name=Peter, surname=Gunton, salary=40000]
Employee30 [id=8, name=Stephanie, surname=Whitmore, salary=45000]
Employee30 [id=9, name=Jennifer, surname=Libby, salary=52000]

ALL , ANY

SELECT e from Employee30 e WHERE e.salary> ALL
(SELECT e2.salary FROM Employee30 e2 WHERE e2.department.id =?1)
SELECT * from Employee30 e WHERE e.salary > ALL 
(SELECT e2.salary FROM Employee30 e2 WHERE e2.dept_id = '2');

Sorgumuzu inceleyecek olursak , department id degeri 2 olan tum calisanlarin salary degerinden fazla olan Employee kayitlarini getirmektedir.

Ornegimizi calistirdigimizda ;

ALL_EXPRESSION
Employee30 [id=10, name=Sarah, surname=Proval, salary=59000]
Employee30 [id=5, name=Scott, surname=Brown, salary=60000]
Employee30 [id=6, name=Rod , surname=Johnson , salary=62000]

Kaynak kodlar : Injavawetrust.jpa

Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
OCE, Java EE 6 Web Component Developer

Print Friendly, PDF & Email
JPA jpql jpql between jpql in jpql like jpql where ORM Query

Did you like this article? Share it with your friends!

Tweet

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Java Dünyasi

  • Design Patterns
  • EclipseLink/JPA
  • Genel
  • Github
  • Hibernate
  • Java Puzzler
  • Java SE
  • JAX-RS
  • JAX-WS
  • JSF
  • Log4j
  • Maven
  • Oracle DB
  • Primefaces
  • Servlet&JSP
  • Spring
    • Spring 4.x
    • Spring MVC

Recent Comments

  • Levent Erguder on Oracle Certified Professional, Java SE 11 Developer Sinavi Hakkinda
  • Levent Erguder on Pure Java – 90 Thread – 07 – Atomic & volatile
  • Rufet Huseynov on Pure Java – 90 Thread – 07 – Atomic & volatile
  • Aleksandr on Oracle Certified Professional, Java SE 11 Developer Sinavi Hakkinda
  • enver on EclipseLink – 02 – Hello EclipseLink

Tags

@Autowired @Controller @Entity @Id @Named AOP apache maven EclipseLink GeneratedValue hibernate hibernate dersleri hibernate netbeans hibernate tutorial Java Java Dersleri java nedir java tutorial Jaxrs jaxws jdbc Jersey JPA jsf maven MVC oracle oracle 11 g oracle db oracle db dersleri oracle dersleri oracle nedir oracle tutorial oracle veritabani rest resteasy RESTful servlet soap Spring spring dersleri spring framework spring jdbc spring mvc spring nedir spring tutorial

Archives

  • April 2021
  • November 2020
  • June 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • March 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

"Be an oracle man, import java.* " Levent Erguder