This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
I know this is a rather jboss/hypersonic question, but I am having problems with manual database table creation with Hypersonic and entity beans.
I have a simple entity bean. I can ask Jboss to automatically create a table when the bean is deployed by defining this in my jbosscmp-jdbc.xml file:
And then I run my client to create a bean, all works fine and the entity is created in the database (checked using DatabaseManager).
If I drop the table and create it using SQL (actually from ant) using the following sql code:
The 'text' is a Hypersonic-specific sql statement.
and change the jbosscmp-jdbc.xml entry:
Then redeploy the app, all seems fine until I run the client. When the client calls the create() method, I get this:
CreateException:Could not create entity:java.sql.SQLException: The table's data source for has not been defined in statement [INSERT INTO PERSON (pid, name, age) VALUES (?, ?, ?)]
I have examined the table schema created by the sql file compared to that generated by jboss and they seem identical.
Am I missing something here or do I need to configure something else ?
Any help would be appreciated!
Joined: Apr 27, 2005
I solved this problem so thought I'd round off in case anyone ever has the same issue.
In the hypersonic documentation, it states that you need to create a table with the text attribute in order to make it persistant and not a memory-only table:
[CODE} create [B]text[/B] table person ( pid varchar not null primary key, name varchar, age integer ); [/CODE]
However, this seems to cause Jboss to not recognize the table. Removing the 'text' solved the problem. So either the documentation is incorrect (or I dont understand it) or Jboss does something under the covers to make the table permanent when accessing it.