If you're looking for design patterns explicity, then you could consider Hibernate a fancy API for implementing the Active Record Pattern:
  In software engineering, the active
  record pattern is a design pattern
  frequently found in software that
  stores its data in relational
  databases. It was named by Martin
  Fowler in his book Patterns of
  Enterprise Application Architecture.
  The interface to such an object would
  include functions such as Insert,
  Update, and Delete, plus properties
  that correspond more-or-less directly
  to the columns in the underlying
  database table.
  
  Active record is an approach to
  accessing data in a database. A
  database table or view is wrapped into
  a class; thus an object instance is
  tied to a single row in the table.
  After creation of an object, a new row
  is added to the table upon save. Any
  object loaded gets its information
  from the database; when an object is
  updated, the corresponding row in the
  table is also updated. The wrapper
  class implements accessor methods or
  properties for each column in the
  table or view.