• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

mapping 2 versions of a POJO: POJO and POJOAggr

 
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I think this is a simple, real-world case that I cannot find documented anywhere in HBM.

I have a POJO which also contains a Set of dependent objects. For performance, I would like to have 2 ways of accessing - the POJO with and without the Set. The POJO version is for list results, then the POJO + Set version is for details of a single instance.

Normally I would represent these objects as a POJO and its Aggregate, like so (please imagine getters/setters for brevity):



I cannot figure out how to model this in Hibernate.
  • If I map 2 separate objects to the same table, when I query for a List of search results, HBM calculates results for both objects (Result and ResultAggr), even though I am matching the proper class name in the query.

  • The HBM inheritance examples cover polymorphism very well, but does not cover a case as (seemingly) simple as this.



  • I think I am going to have to manage the sub-list entirely independently. But then I will lose the cascading and many-to-many abilities of HBM for the Aggregated case, which I don't want to do.

    I very much appreciate any ideas. If it means anything, I'm using HBM3 via Spring's template wrappers.
     
    Clark Butler
    Greenhorn
    Posts: 2
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    I should post my current Aggregated HBM descriptor:



    And so if I try to add



    HBM maps both, always.

    But since there is no required discriminator, the only difference between the types being aggregation of dependent data, I can not find an inheritence-based HBM pattern that will implement this persistence.

    Thanks again -
     
    Ranch Hand
    Posts: 1780
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Have you tried the following, which sounds like the simplest approach?

    1. Have one POJO class with a Set-valued property.
    2. Map the set lazily (the default in Hibernate 3.0):

    In your code, these dependent object will only be selected from the database if you attempt to access them or ask Hibernate to explicitly initialize them.
     
    Consider Paul's rocket mass heater.
    reply
      Bookmark Topic Watch Topic
    • New Topic