Path: csiph.com!x330-a1.tempe.blueboxinc.net!feeder1.hal-mli.net!nx02.iad01.newshosting.com!newshosting.com!news-out.readnews.com!transit3.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!86597e80!not-for-mail From: "Lew" Subject: Re: hibernate: mapping he Message-ID: <9uydnUYir8zqa6rVnZ2dnUVZ_sGdnZ2d@comcast.com> X-Comment-To: comp.lang.java.databases Newsgroups: comp.lang.java.databases In-Reply-To: References: Content-Type: text/plain; charset=IBM437 Content-Transfer-Encoding: 8bit X-Gateway: time.synchro.net [Synchronet 3.15a-Win32 NewsLink 1.92] Lines: 22 Date: Wed, 27 Apr 2011 15:21:59 GMT NNTP-Posting-Host: 96.60.20.240 X-Complaints-To: news@tds.net X-Trace: newsreading01.news.tds.net 1303917719 96.60.20.240 (Wed, 27 Apr 2011 10:21:59 CDT) NNTP-Posting-Date: Wed, 27 Apr 2011 10:21:59 CDT Organization: TDS.net Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.databases:140 To: comp.lang.java.databases Matteo wrote: > A composite key can be translated to a surrogate key quite easily: > (fieldA, fieldB) primary key NOT NULL > is equal to > surrogateKey PRIMARY KEY NOT NULL > (fieldA, fieldB) UNIQUE NOT NULL > > This will save you from a lot of headhaches with Hibernate. Unfortunately this causes headaches in the data model. Entity tables can sport such surrogate keys, but linking tables, where "fieldA" and "fieldB" are both keys into other tables, get pretty fubared when you throw a superfluous surrogate key onto the them. The extra key gets in the way of JOINs. -- Lew --- * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet! --- Synchronet 3.15a-Win32 NewsLink 1.92 Time Warp of the Future BBS - telnet://time.synchro.net:24