| Generate Entities from Tables (Postgres) [message #829461] |
Mon, 26 March 2012 06:18  |
shalin lazar Messages: 18 Registered: February 2012 |
Junior Member |
|
|
I believe I may have initially posted in a wrong thread. Tried to post a link to thread, but I can't do that ... so I'll just quote myself. Apologies in advance.
shalin lazar wrote on Sat, 24 March 2012 07:18Hi all,
I'm not sure where to ask this, so if I'm in the wrong place, apologies in advance.
I have built a large database in PostgreSQL 8.4, with quite a few Stored Functions, Triggers, etc. in order to increase the performance of my application and for functional requirements such as avoiding gaps in some sequences.
I've build Java EE applications before on NetBeans, but have chosen Eclipse for obvious reasons. I've been following the following tutorial:
programming[dot]manessinger[dot]com[slash]tutorials[slash]an-eclipse-glassfish-java-ee-6-tutorial;
... in order to get around some specifics, but I've run into a problem at the first hurdle which I cannot seem to figure out.
When generating entities from my database, the resulting Entity Beans are full of errors: some tables are not even generated even though I selected all tables in the wizard.
I think the main reason is that I do not have a fixed structure of tables in my database. For example, some tables have up to 4 columns as a collective primary key, while others have just a column and a row to store a count variable. The database indexing is fine as it is and can run without any problems on its own. I'm mostly planning on building the front end (Swing) and finishing off the smaller (quicker) business logic through Session and Message-Driven beans.
So that is a basic intro of the state I'm in. There are quite a few errors ... I'll list the ones I've noted as of now:
1) Some tables are not generated as entity beans.
2) Some associations generate naming errors: So far, I've only noted SOME @ManyToOne associations. I'll go into more detail here.
In the Table Associations frame of the Entity Generation wizard, I've noted a ManyToOne relation. The Table join section seems fine, as do the properties of both tables involved.
Eg: accountTransactCenter.currencyId = currency.id
However, AccountTransactCenter.java has the following error:
//bi-directional many-to-one association to Currency
@ManyToOne --> error
@JoinColumns({})
private Currency currency;
Mouse-over the error: Join column "currency_id" cannot be resoved on table "accountTransactCenter"
Now, I made a few errors in my DB development. Mainly, name errors. I followed java method style, starting all DB identifiers with lowercase with an proceeding word beginning with an upper case. Postgres supports identifiers with uppercase characters by double-quoting them. As I was using a GUI client in pgadminIII, I only noticed this when I had done quite a bit of work.
Secondly, and I do not think this is an error, I name my foreign keys as such:
localTable_foreignTable_foreignTableColumnName.
This could be the only reason I can think of as to why currency_id was raised as an error, as I had not entered any such name into a column or table name. Are my suspicions correct? So, for the example given, the foreign key in accountTransactCenter would be:
fki_accountTransactCenter_currency_id (fki is generated by Postgres).
Other than this, I haven't found anything else. I know I should have tried an easier example before building my whole database, but is there any way around these issues?
Thanks and best regards.
shalin lazar wrote on Mon, 26 March 2012 03:59Bump 
I should state that I'm using EclipseLink for JPA 2.0 on Indigo. I'm using Postgres' jdbc4 driver which is working well. Can't seem to figure out why I'm getting this error both on Windows and Linux (It was a long shot I know ... but should give you an idea of how much help I could use. I really have no clue how to solve this).
I will try using Hibernate as my persistence provider, then an older TopLink. Hopefully, something will come through.
I should also add that I'm running a glassfish 3.1.1 application server.
Any help/comments would be greatly appreciated.
Thanks.
Basically, I've built a postres 8.4 database, but not all Entity classes are generated in my EJB project, and there are some @ManyToOne association errors.
Your help will be much appreciated.
Best regards.
|
|
|