Southern Ohio Software Symposium
August 15 - 17, 2008 - Cincinnati, OH
Scott Leberknight
Chief Architect at Near Infinity
Scott is Chief Architect at Near Infinity Corporation, an enterprise software development and consulting services company based in Reston, Virginia. He has been developing enterprise and web applications for 14 years professionally, and has developed applications using Java, Ruby, Groovy, and even an iPhone application with Objective-C. His main areas of interest include alternative persistence technologies, object-oriented design, system architecture, testing, and frameworks like Spring, Hibernate, and Ruby on Rails. In addition, Scott enjoys learning new languages to make himself a better and more well-rounded developer a la The Pragmatic Programmers' advice to "learn one language per year."
Scott holds a B.S. in Engineering Science and Mechanics from Virginia Tech, and an M. Eng. in Systems Engineering from the University of Maryland. Scott speaks at the No Fluff Just Stuff Symposiums and various other conferences. In his (sparse) spare time, Scott enjoys spending time with his wife, three children, and cat. He also tries to find time to play soccer, go snowboarding, and mountain bike whenever he can.
Presentations
Introduction to Hibernate
This session introduces the Hibernate Object/Relational Mapping (ORM) framework, showing the basics of persisting Java objects to relational databases. No prior knowledge of Hibernate or ORM is assumed.
Persistence is a key element of most applications, whether web or desktop. Relational databases are the defacto standard for enterprise data storage and object-oriented (OO) programming, for example in Java, is the predominant technique to build applications today. Relational databases and OO, however, are completely different paradigms. Object/Relational Mapping (ORM) seeks to bridge this gap to allow easy persistence of objects to relational databases. Hibernate is a leading ORM framework providing persistence of Java objects to relational databases. This session introduces Hibernate and covers ORM alternatives available today; getting started with Hibernate; mapping objects to database structures; interacting with Hibernate APIs to find and persist objects; transactions; and finally, architectural considerations and suggestions for integrating Hibernate into applications.
Real World Hibernate Tips
Hibernate is a very powerful object/relational mapping framework. With the vast amount of power also comes the responsibility to choose which features of Hibernate to use and how to use them, as well as things to avoid. We'll look at some real world Hibernate tips and tricks in this session.
Hibernate is one of the most popular and successful object/relational frameworks available today. In this session we'll look at some real world tips for using Hibernate effectively. Topics we'll cover include: logging and debugging Hibernate-generated SQL; using annotation mappings, ImprovedNamingStrategy, and MappedSuperclass; understanding lazy-loading and the n+1 problem; basics of performance tuning Hibernate applications; using inheritance in your domain model; managing sessions; effective use of the second-level cache; validation using Hibernate Validator; and when not to use Hibernate in an application.
Google Your Domain Objects With Hibernate Search
Hibernate is one of the pre-eminent object/relational mapping technologies, but the Hibernate Search project adds full-text search capabilities to an already extremely capable tool to allow you to Google your domain objects.
Hibernate Search provides the means to add full-text search to your domain objects by leveraging Apache Lucene under the covers. You control which domain objects are searchable, how they should be indexed, and Hibernate Search takes care of the dirty work for you. It handles the object/index impedance mismatch and the task of managing the search indices. You can also execute full-text searches and retrieve actual domain objects transparently. We'll also discuss various architecture alternatives including using Hibernate Search in both clustered and non-clustered environments.
Groovier Spring (More Flexible Applications With Spring and Groovy)
Spring provides a solid foundation for web and enterprise applications. Its support for dynamic languages like Groovy adds interesting capabilities that can make your application architecture more flexible and dynamic.
This presentation will look at how Spring's support for dynamic languages, and Groovy in particular, can enhance your application.
