> I am building out an object model and services for an > existing relational model and the table structure is a > little strange and I am having trouble with the object > mapping. > Here are the details > > We have 2 tables > company with primary key > id > > 12M_company_venue with columns > > parent_company_id > venue_company_id > > The relational model works like this, a row in the > company table can represent both a company and a venue > given the keys to the (one to many) 12M_company_venue > join table you can get > the venues of the company or just the company in cases > were the parent_company_id = venue_company_id. > > here is an example to get all the companies > > SELECT company.id, company.name as name > FROM 12M_company_venue > INNER JOIN company ON > 12M_company_venue.venue_company_id = company.id > WHERE company.id = > 12M_company_venue.parent_company_id > > Here is an example on how to get all the venues > > SELECT company.id as id, company.name as venue_name > FROM 12M_company_venue > INNER JOIN company ON > 12M_company_venue.venue_company_id = company.id > WHERE company.id != > 12M_company_venue.parent_company_id > > I know this is a little nasty but its what I have and > another app (PHP) is working with this dataset and we > just can't update it right now. Is it possible to map > this with JPA ? Any help would be appreciated. > > -Matt
How about rethinking it as SELECT parent.id as parent_id, parent.name as parent_name, venue.id as venue_id, venue.name as venue_name FROM 12M_company_venue INNER JOIN company as parent ON 12_company_parent_id = parent.id INNER JOIN company as venue ON 12_company_venue_id = venue.id ; However, that SQL is of course not needed in entity, just add parentCompany and venueCompany into your 12MCompanyVenue entity bean.