Re: Indices

From: Borut Bolčin (cayenn..mail.si)
Date: Fri Jan 07 2005 - 10:51:44 EST

  • Next message: Mike Kienenberger: "Re: Indices"

    Hello Andrus,

    thanks for your reply. I did not quite understand this sentance: "For
    now you can use Cayenne schema generation API to create basic tables, ..."

    Can you point me to a class(es) responsible for table creation, I have
    to get know the API better.

    Great advice about stored procedures, thanks again.

    Regards,
    Borut

    On 6.1.2005 17:50, Andrus Adamchik wrote:

    >Hi Borut,
    >
    >
    >
    >>I am trying to reverse-engineer a ver very simple database (actualy it
    >>contains only one table). I succeded, but wondering how to create
    >>indices on some of the attributes.
    >>
    >>
    >....
    >
    >
    >>How do I create the last three "rows" in the above example in Cayenne
    >>and what would be the best approach to create such db table at my
    >>application startup period?
    >>
    >>
    >
    >Cayenne itself doesn't care about indices, so it doesn't store them in the
    >mapping. Every now and then we receive a request to support this or that
    >DB feature even though it may not be relevant to ORM as such, so this
    >could be added at some point in the future... For now you can use Cayenne
    >schema generation API to create basic tables, and store all extras (such
    >as indices, defaults, etc.) as raw SQL (aka SQLTemplate queries) in the
    >Modeler. Something like ALTER TABLE ...
    >
    >
    >
    >>Another question is more philosophical. I did not use stored procedures
    >>yet. What are the pros and cons of using them and how Cayenne fits in
    >>this story?
    >>
    >>
    >
    >Cayenne supports stored procedures as individual objects in the mapping.
    >It does not support stored procedures as means of DataObject lifecycle
    >management. Though you can probably create a custom DataContext to do
    >that.
    >
    >As for implementing applications with business logic as stored procedures,
    >some people do that. You won't find too many of them in this forum. So you
    >may want to look for an alternative opinion elsewhere.
    >
    >Anyway... There is a number of reasons not to do it. You will be killing
    >all the benefits of structured and object oriented programming, such as
    >maintainability and reuse. You will tie yourself to a DB vendor (try
    >rewriting "advanced" PL/SQL in any other SQL flavor). And finally
    >languages like PL/SQL or Transact SQL are not suited for application
    >programming.
    >
    >I know of a very few pros. The biggest one is that SQL is very good at
    >data manipulation - sometimes a few lines of SQL can replace thousands of
    >lines of Java code. Also there are various legacy considerations.
    >
    >So my philosophy is to be pragmatic - do an OO design in Java whenever
    >possible and use stored procedures or views for "hardcode" data
    >manipulation.
    >
    >
    >
    >
    >>Can I use the same stored procedures on Oracle and say MySQL
    >>v5 with Cayenne help?
    >>
    >>
    >
    >I haven't tested stored procedures with MySQL, though it should work as
    >long as JDBC driver supports them. And yes, Cayenne (and JDBC) provide a
    >pretty good cross-db abstraction of stored procedures.
    >
    >Andrus
    >
    >
    >
    >



    This archive was generated by hypermail 2.0.0 : Fri Jan 07 2005 - 10:51:48 EST