What I blame Hibernate for is being misleading about the complexity. Most people think it makes a developer's life easier, but my experience is quite the opposite. It is nice and easy until you hit the errors and performance issues and unless you understand Hibernate really well you will hit those fast.

I consider object-relational mapping a stupid idea, but unfortunately one that's hard to avoid in current enterprise development. Thus my cynicism.

   Peter


On 14/07/10 22:40, jitesh dundas wrote:
Precisely what I was about to say in a few minutes..Peter, you read my mind..

It is not about HIbernate being slow or the software having issues of redundancy. The problem is how we implement Hibernate..That said, we need to understand how we are handlinig the xml file defnitions and relationship mappings..

Till now, we have seen instances when functional design leads to code level design. This is the case where the opposite holds true also..You have to map according to the platform - a bit of reverse engineering - and then decide the optimum performance..

large sites using cache databases is not new..Plenty of them do that - especially in lotus notes application..The problem is the data that you are trying to update...
Are we doing that correctly..

Let us not blame Hibernate for everuything friends..There is more than what meets the eye..

Regardsm,
jd

On Wed, Jul 14, 2010 at 6:00 PM, Peter Becker <peter.becker.de <http://peter.becker.de>@gmail.com <http://gmail.com>> wrote:

    On 14/07/10 21:22, Moandji Ezana wrote:
    On Wed, Jul 14, 2010 at 11:45 AM, Peter Becker <peter.becker.de
    <http://peter.becker.de>@gmail.com <http://gmail.com>> wrote:

        On 14/07/10 19:16, Moandji Ezana wrote:

            The thing I find most useful about Hibernate is that when
            you have a lot of tables of inter-related data, it really
            alleviates the pain of having to think about what data
            you need to load for each possible workflow.

        Not if you care about scalability, in which case you really
        need to know what you want to fetch and how all your caching
        layers work (although the caching as such can be a good
        feature to have). Particularly if you reach the same object
        from different contexts with different requirements, thinking
        about eager and lazy fetching can get rather complicated.


    True, but if you need to scale massively, you probably aren't
    using Hibernate anyway. (Or are you? Anyone know of massive sites
    that use Hibernate?)
    I'm not talking about the Googles or Amazons. To get into this
    type of problem you really need only a few gigs, if you do really
    stupid things only a couple of megs will do -- if you reload all
    of your DB on every request performance will degrade very fast.

    I haven't seen whole DBs being loaded yet, but I have seen things
    pretty close to that -- particularly in cases where eager fetching
    is used as the solution to the problem of the view not being part
    of the Hibernate session. I know the answer is to expand the
    session lifecycle to contain the view, but that awareness doesn't
    seem widely spread. Depending on your framework it is also often
    not trivial. Spring can do it declaratively and knowing the right
    hooks most other frameworks let you do it, but you left the realm
    of nice and easy that Hibernate advocates tend to advertise.

    My point really is that while Hibernate can produce nice and easy
    solutions, the only way to know you have a good solution is to
    fully understand what's happening. And that is not easy and
    sometimes not nice either (did someone mention "object identity"
    yet?). That makes Hibernate a solution that is nice and easy as
    long as you either don't care at all about the potential issues or
    you have someone else to take care. If you are the one who has to
    care you really need a very good understanding of the OO side, the
    RDB side and the ORM part.

       Peter
-- You received this message because you are subscribed to the Google
    Groups "The Java Posse" group.
    To post to this group, send email to [email protected]
    <mailto:[email protected]>.
    To unsubscribe from this group, send email to
    [email protected]
    <mailto:javaposse%[email protected]>.
    For more options, visit this group at
    http://groups.google.com/group/javaposse?hl=en.


--
You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.

--
You received this message because you are subscribed to the Google Groups "The Java 
Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to