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
Finology Group ā Insurtech Innovation Award 2024
Finology Group ā Insurtech Innovation Award 2024
The Digital Insurer
Ā
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
Ā
š¬ The future of MySQL is Postgres š
š¬ The future of MySQL is Postgres š
RTylerCroy
Ā
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Ā
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Neo4j
Ā
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Ā
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
Ā
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Ā
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Khem
Ā
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Ā
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
Ā
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel AraĆŗjo
Ā
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Ā
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
Ā
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
Ā
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
Ā
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
Ā
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
UK Journal
Ā
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Principled Technologies
Ā
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
Ā
Recently uploaded
(20)
Finology Group ā Insurtech Innovation Award 2024
Finology Group ā Insurtech Innovation Award 2024
Ā
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Ā
š¬ The future of MySQL is Postgres š
š¬ The future of MySQL is Postgres š
Ā
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Ā
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Ā
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Ā
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Ā
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Ā
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Ā
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Ā
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
Ā
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Ā
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Ā
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Ā
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Ā
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Ā
Slack Application Development 101 Slides
Slack Application Development 101 Slides
Ā
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Ā
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Ā
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Ā
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