Submit Search
Upload
Generic DAOs With Hades
•
4 likes
•
1,469 views
Oliver Gierke
Follow
Slides from the talk on the open source project Hades - http://hades.synyx.org
Read less
Read more
Technology
Education
Report
Share
Report
Share
1 of 31
Download now
Download to read offline
Recommended
Code retreat Codeception
Code retreat Codeception
Florent Batard
Spring Data and MongoDB
Spring Data and MongoDB
Oliver Gierke
Whoops! Where did my architecture go?
Whoops! Where did my architecture go?
Oliver Gierke
Sophisticated JPA with Spring & Hades
Sophisticated JPA with Spring & Hades
Oliver Gierke
Coding & Music Passion And Profession
Coding & Music Passion And Profession
Oliver Gierke
Spring Roo 1.0.0 Technical Deep Dive
Spring Roo 1.0.0 Technical Deep Dive
Ben Alex
Whoops! where did my architecture go?
Whoops! where did my architecture go?
Oliver Gierke
Mylyn - Increasing developer productivity
Mylyn - Increasing developer productivity
Oliver Gierke
Recommended
Code retreat Codeception
Code retreat Codeception
Florent Batard
Spring Data and MongoDB
Spring Data and MongoDB
Oliver Gierke
Whoops! Where did my architecture go?
Whoops! Where did my architecture go?
Oliver Gierke
Sophisticated JPA with Spring & Hades
Sophisticated JPA with Spring & Hades
Oliver Gierke
Coding & Music Passion And Profession
Coding & Music Passion And Profession
Oliver Gierke
Spring Roo 1.0.0 Technical Deep Dive
Spring Roo 1.0.0 Technical Deep Dive
Ben Alex
Whoops! where did my architecture go?
Whoops! where did my architecture go?
Oliver Gierke
Mylyn - Increasing developer productivity
Mylyn - Increasing developer productivity
Oliver Gierke
REST based web applications with Spring 3
REST based web applications with Spring 3
Oliver Gierke
Spring Data and MongoDB
Spring Data and MongoDB
Oliver Gierke
Increasing developer procutivity with Mylyn (Devoxx 2010)
Increasing developer procutivity with Mylyn (Devoxx 2010)
Oliver Gierke
Mylyn
Mylyn
Oliver Gierke
Real world dependency injection - DPC10
Real world dependency injection - DPC10
Stephan Hochdörfer
Spring in action - Hades & Spring Roo
Spring in action - Hades & Spring Roo
Oliver Gierke
Data Access 2.0? Please welcome, Spring Data!
Data Access 2.0? Please welcome, Spring Data!
Oliver Gierke
An introduction into Spring Data
An introduction into Spring Data
Oliver Gierke
Spring integration
Spring integration
Oliver Gierke
Spring Data JPA - Repositories done right
Spring Data JPA - Repositories done right
Oliver Gierke
Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!
Oliver Gierke
Whoops! Where did my architecture go?
Whoops! Where did my architecture go?
Oliver Gierke
Questioning the status quo
Questioning the status quo
Ivano Pagano
Java EE 6 CDI Integrates with Spring & JSF
Java EE 6 CDI Integrates with Spring & JSF
Jiayun Zhou
Charla EHU Noviembre 2014 - Desarrollo Web
Charla EHU Noviembre 2014 - Desarrollo Web
Mikel Torres Ugarte
Ekoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's Methodology
bugcrowd
MTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary Study
MTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary Study
Maurício Aniche
Testing ASP.NET - Progressive.NET
Testing ASP.NET - Progressive.NET
Ben Hall
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
CODE BLUE
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
CODE BLUE
Parse cloud code
Parse cloud code
維佋 唐
MobSecCon 2015 - Dynamic Analysis of Android Apps
MobSecCon 2015 - Dynamic Analysis of Android Apps
Ron Munitz
More Related Content
Viewers also liked
REST based web applications with Spring 3
REST based web applications with Spring 3
Oliver Gierke
Spring Data and MongoDB
Spring Data and MongoDB
Oliver Gierke
Increasing developer procutivity with Mylyn (Devoxx 2010)
Increasing developer procutivity with Mylyn (Devoxx 2010)
Oliver Gierke
Mylyn
Mylyn
Oliver Gierke
Real world dependency injection - DPC10
Real world dependency injection - DPC10
Stephan Hochdörfer
Spring in action - Hades & Spring Roo
Spring in action - Hades & Spring Roo
Oliver Gierke
Data Access 2.0? Please welcome, Spring Data!
Data Access 2.0? Please welcome, Spring Data!
Oliver Gierke
An introduction into Spring Data
An introduction into Spring Data
Oliver Gierke
Spring integration
Spring integration
Oliver Gierke
Spring Data JPA - Repositories done right
Spring Data JPA - Repositories done right
Oliver Gierke
Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!
Oliver Gierke
Whoops! Where did my architecture go?
Whoops! Where did my architecture go?
Oliver Gierke
Viewers also liked
(12)
REST based web applications with Spring 3
REST based web applications with Spring 3
Spring Data and MongoDB
Spring Data and MongoDB
Increasing developer procutivity with Mylyn (Devoxx 2010)
Increasing developer procutivity with Mylyn (Devoxx 2010)
Mylyn
Mylyn
Real world dependency injection - DPC10
Real world dependency injection - DPC10
Spring in action - Hades & Spring Roo
Spring in action - Hades & Spring Roo
Data Access 2.0? Please welcome, Spring Data!
Data Access 2.0? Please welcome, Spring Data!
An introduction into Spring Data
An introduction into Spring Data
Spring integration
Spring integration
Spring Data JPA - Repositories done right
Spring Data JPA - Repositories done right
Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!
Whoops! Where did my architecture go?
Whoops! Where did my architecture go?
Similar to Generic DAOs With Hades
Questioning the status quo
Questioning the status quo
Ivano Pagano
Java EE 6 CDI Integrates with Spring & JSF
Java EE 6 CDI Integrates with Spring & JSF
Jiayun Zhou
Charla EHU Noviembre 2014 - Desarrollo Web
Charla EHU Noviembre 2014 - Desarrollo Web
Mikel Torres Ugarte
Ekoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's Methodology
bugcrowd
MTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary Study
MTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary Study
Maurício Aniche
Testing ASP.NET - Progressive.NET
Testing ASP.NET - Progressive.NET
Ben Hall
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
CODE BLUE
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
CODE BLUE
Parse cloud code
Parse cloud code
維佋 唐
MobSecCon 2015 - Dynamic Analysis of Android Apps
MobSecCon 2015 - Dynamic Analysis of Android Apps
Ron Munitz
New Ideas for Old Code - Greach
New Ideas for Old Code - Greach
HamletDRC
TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ...
tdc-globalcode
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
Guy Royse
前端概述
前端概述
Ethan Zhang
Big security for big data
Big security for big data
Ari Elias-Bachrach
Charlie Gerard- Mind Control in Javascript (Evolution)
Charlie Gerard- Mind Control in Javascript (Evolution)
Thoughtworks
How to write clean & testable code without losing your mind
How to write clean & testable code without losing your mind
Andreas Czakaj
[UniteKorea2013] Protecting your Android content
[UniteKorea2013] Protecting your Android content
William Hugo Yang
Rapid prototyping search applications with solr
Rapid prototyping search applications with solr
Lucidworks (Archived)
The Dojo Build System
The Dojo Build System
klipstein
Similar to Generic DAOs With Hades
(20)
Questioning the status quo
Questioning the status quo
Java EE 6 CDI Integrates with Spring & JSF
Java EE 6 CDI Integrates with Spring & JSF
Charla EHU Noviembre 2014 - Desarrollo Web
Charla EHU Noviembre 2014 - Desarrollo Web
Ekoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's Methodology
MTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary Study
MTD2014 - Are The Methods In Your DAOs in the Right Place? A Preliminary Study
Testing ASP.NET - Progressive.NET
Testing ASP.NET - Progressive.NET
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
Parse cloud code
Parse cloud code
MobSecCon 2015 - Dynamic Analysis of Android Apps
MobSecCon 2015 - Dynamic Analysis of Android Apps
New Ideas for Old Code - Greach
New Ideas for Old Code - Greach
TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha Java EE How we figured out we had a SRE team at ...
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
前端概述
前端概述
Big security for big data
Big security for big data
Charlie Gerard- Mind Control in Javascript (Evolution)
Charlie Gerard- Mind Control in Javascript (Evolution)
How to write clean & testable code without losing your mind
How to write clean & testable code without losing your mind
[UniteKorea2013] Protecting your Android content
[UniteKorea2013] Protecting your Android content
Rapid prototyping search applications with solr
Rapid prototyping search applications with solr
The Dojo Build System
The Dojo Build System
Recently uploaded
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Pooja Nehwal
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
Softradix Technologies
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
null - The Open Security Community
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
Hyundai Motor Group
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Memoori
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
Deakin University
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
The transition to renewables in India.pdf
The transition to renewables in India.pdf
Competition Advisory Services (India) LLP
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
XfilesPro
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Patryk Bandurski
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
soniya singh
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
null - The Open Security Community
Recently uploaded
(20)
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Slack Application Development 101 Slides
Slack Application Development 101 Slides
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
The transition to renewables in India.pdf
The transition to renewables in India.pdf
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Generic DAOs With Hades
1.
HadesOliver Gierke -
Synyx GmbH & Co. KG „Simple things should be simple, complex things should be possible.“ Alan Kay
2.
www.devoxx.com Speaker ■ Oliver Gierke
- gierke@synyx.de ■ Software Architect @ Synyx GmbH & Co. KG ■ JavaEE, Spring (beyond the obvious) ■ Financial industry, automotive ■ Hades project lead ■ olivergierke
3.
Java Persistence API
4.
5.
www.devoxx.com GenericDao GenericJpaDao CRUD
6.
www.devoxx.com Demo I
7.
Query methods
8.
www.devoxx.com 1. Create interface 2.
Declare methods 3. Tune queries
9.
www.devoxx.com GenericDao UserDao GenericJpaDao CRUD Query
methods GenericDaoFactory / GenericDaoFactoryBean
10.
Derive User findByUsername( String username);
11.
Named Query @NamedQuery (name=“User.findByLastname“ query=“...“) List<User> findByLastname(...);
12.
@Query @Query(„from User u
where ...“) List<User> findByLastname(...);
13.
www.devoxx.com Demo II
14.
Pagination Sorting
15.
@Query(„from User u
where u.lastname = ?“) Page<User> findByLastname( String lastname, Pageable pageable);
16.
@Param(„name“)
17.
@Query(„from User u
where u.lastname = :lastname or u.firstname = :firstname“) List<User> findByLastOrFirstname( @Param(„lastname“) String lname, @Param(„firstname“) String fname)
18.
@Modifying
19.
@Modifying @Query(„...“) int undefaultAllBut(Role role);
20.
Spring integration
21.
<hades:dao-config base-package=“foo.**.dao“ />
22.
Spring IDE Plugin
23.
Custom DAO code
24.
www.devoxx.com GenericDao UserDao UserDaoCustom GenericJpaDao
UserDaoImpl CRUD Query methods Custom implementation GenericDaoFactory / GenericDaoFactoryBean
25.
www.devoxx.com Demo III
26.
Additional support
27.
Auditing
28.
Created? Modified? Who? When?
29.
Domain base classes
30.
Questions? WTF
31.
www.devoxx.com Meta stuff ■ Current
version: 1.0 (stable 1.1-snapshot) ■ Apache license 2.0 ■ http://hades.synyx.org
Download now