From: Aaron K. <Aar...@vo...> - 2004-06-30 21:58:19
|
> > I suggest that named query validation be done by the=20 > > Dialect implementation, rather than by checking against a live DB. >=20 > Why the dialect? It doesn't know about the schema, does it? =20 Ok, I guess I wasn't being particularly precise when I suggested the Dial= ect. The complete validation would be a combination of the current HQL c= ompiler and the Dialect. HQL is already validated against the schema def= ined in the mapping. What this thread is all about is checking that: 1) All of the objects defined in the mapping actually exist in a given DB= =20instance. 2) Ensuring that the SQL produced by the HQL compiler is actually valid f= or a given DB. =20 As mentioned elsewhere in this thread, 1 can be done via the (possibly ex= tended) schema export tool. Item 2 is what I would expect to be the job of the Dialect. If a given D= ialect implementation is told to produce a sub-select, it should only do = so if the implemented SQL flavour actually supports that syntax. I reali= se that much of this functionality is produced in common code, but I am s= uggesting that the best approach to this problem is to refactor the SQL g= eneration code so that the Dialect has the ability to make these decision= s. > It seems that > Hibernate (by design) uses the database itself to check the generated > SQL versus the db schema in a 'late binding' manner. Users > (myself included) may expect this, so I would think that any > query validation would need to be optional or elective at least. >=20 I agree. > In any case, it is true that the database will always check > the SQL it recieves for compatibility with the schema anyway, so > maybe this query validation would simply provide better error > messages? If so, that sounds to me like a 'nice to have' rather=20 > than a 'must have'. (remember: FNG here) >=20 I agree with that, too. ADK -------------------------------------------------------------------------= ---------------------- Have you seen our website?.... http://www.vodafone.co.nz CAUTION: This correspondence is confidential and intended for the named r= ecipient(s) only. If you are not the named recipient and receive this correspondence in err= or, you must not copy, distribute or take any action in reliance on it and you should delete it = from your system and notify the sender immediately. Thank you. Unless otherwise stated, any views or opinions expressed are solely those= =20of the author and do not represent those of Vodafone New Zealand Limited. Vodafone New Zealand Limited 21 Pitt Street, Private Bag 92161, Auckland, 1020, New Zealand Telephone + 64 9 357 5100 Facsimile + 64 9 377 0962 |