Aritmatic dengan HQL
Hai, pada kesempatan kali ini saya mau ngebahas tentang operator arithmetic pada ORM Hibernate menggunakan HQL. Pada dasarnya Operator Aritmetic bisa di terapkan pada select [operator] from ...
dan select ... from ... where [operator]
Ok langsung aja, berikut adalah implementasi menggunakan Arithmetic dengan HQL.
buat class DTO / Model seperti berikut:
Implementasi DAO:
Implementasi Unit Testing:
Sebelum dijalankan unit testingnya, disini saya menggunakan data yang ada di table parentchild.employees
seperti berikut:
Nah jika sudah sekarang coba kita jalankan unit testing method testHitungSalaryEmployeeDalamSetahun
, maka hasilnya seperti berikut:
Jan 22, 2021 3:24:01 PM org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService
INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
Hibernate:
select
employeepa0_.id as col_0_0_,
employeepa0_.full_name as col_1_0_,
employeepa0_.salary*? as col_2_0_
from
parentchild.employees employeepa0_
[main] INFO com.maryanto.dimas.bootcamp.test.query.hql.TestHQLArithmetic - data: [AritmaticModel(id=aee1795f-816b-4a4b-a8ef-4429fe3069c1, nama=Hari Sapto Adi, salarySetahun=120000000.00), AritmaticModel(id=1515ba52-3c78-4baa-bb67-d3aa0c32b351, nama=Dimas Maryanto, salarySetahun=42000000.00), AritmaticModel(id=c8a4c59f-f2f3-413c-80b4-31c797b863db, nama=Muhamad Yusuf, salarySetahun=36000000.00)]
[main] INFO com.maryanto.dimas.bootcamp.test.query.hql.TestHQLArithmetic - destroy hibernate session!
Kemudian, coba jalankan unit testing method testHitungTotalSalarySemuaEmployeeDalamSetahun
, maka hasilnya seperti berikut:
Jan 22, 2021 3:25:38 PM org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService
INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
Hibernate:
select
sum(employeepa0_.salary*12) as col_0_0_
from
parentchild.employees employeepa0_
[main] INFO com.maryanto.dimas.bootcamp.test.query.hql.TestHQLArithmetic - total salary: 198000000.00
[main] INFO com.maryanto.dimas.bootcamp.test.query.hql.TestHQLArithmetic - destroy hibernate session!
Dan yang terakhir, coba jalankan method unit testing testHCariKaryawanYangSalaryDalamSetahunDiatas40Juta
, maka hasilnya seperti berikut:
Jan 22, 2021 3:26:38 PM org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService
INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
Hibernate:
select
employeepa0_.id as id1_33_,
employeepa0_.street_address as street_a2_33_,
employeepa0_.job_id as job_id3_33_,
employeepa0_.manager_id as manager_6_33_,
employeepa0_.full_name as full_nam4_33_,
employeepa0_.salary as salary5_33_
from
parentchild.employees employeepa0_
where
employeepa0_.salary*12>=?
[main] INFO com.maryanto.dimas.bootcamp.test.query.hql.TestHQLArithmetic - data: [EmployeeParentChildEntity(id=aee1795f-816b-4a4b-a8ef-4429fe3069c1, name=Hari Sapto Adi, address=Cicalengka Raya, salary=10000000.00, job=Chief Technology Officer), EmployeeParentChildEntity(id=1515ba52-3c78-4baa-bb67-d3aa0c32b351, name=Dimas Maryanto, address=Cinunuk, salary=3500000.00, job=Principal Software Engineer)]
[main] INFO com.maryanto.dimas.bootcamp.test.query.hql.TestHQLArithmetic - destroy hibernate session!
Yuk simak juga videonya,
Dan jika temen-temen belajar hal baru kali ini jangan lupa buat Like, Subcribe, dan Share ke temen kalian. Terimakasih!!!