Submit Search
Upload
Generic DAOs With Hades
•
4 likes
•
1,468 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
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
Rick Flair
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Addepto
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
LoriGlavin3
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
HarshalMandlekar2
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
Nicole Novielli
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
gvaughan
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
LoriGlavin3
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Mark Simos
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Fwdays
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
Mydbops
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
UiPathCommunity
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
narutouzumaki53779
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Curtis Poe
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
LoriGlavin3
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
LoriGlavin3
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Hervé Boutemy
Recently uploaded
(20)
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
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