Hello,

Thanks very much to Joe and Asluk for info on my last
post. My problem was with not having InnoDB enabled in
MySQL. Since then I have been busy building stuff and
learning how this all works. I am now at a point where
I have the same problem as Kasper in his post with the
same subject as this post. I thought I'd try out
something similar with the airline example and I got
the same problem there.

I got the latest version out of CVS a few hours ago
and re-tested. The JBoss server is 3.0.2 and the
airline-ejb.jar file deploys with no problems.
However, when I run the following code:

// Start code snippet
FlightLocalHome ejbFlightLH =
FlightUtil.getLocalHome();
FlightLocal ejbFlight = ejbFlightLH.create("String1", 
   new Timestamp(new
GregorianCalendar().getTimeInMillis()), 
   new Timestamp(new
GregorianCalendar().getTimeInMillis()));
myLogger.info("This Works");

PersonLocalHome ejbPersonLH =
PersonUtil.getLocalHome();
PersonLocal ejbPerson = ejbPersonLH.create("Adrian",
"Hallam");
myLogger.info("This Works");

ReservationLocalHome ejbReservationLH =
ReservationUtil.getLocalHome();
ReservationLocal ejbReservation =
ejbReservationLH.create(
   new Timestamp(new
GregorianCalendar().getTimeInMillis()), ejbPerson,
ejbFlight);
myLogger.info("This doesn't work");

// End code snippet


The above code causes the following error message in
the JBoss log:

Executing SQL: INSERT INTO reservations
(reservation_id, person_id_fk, flight_id_fk,
registration_utc, comment, person_id_fk, flight_id_fk)
VALUES (?, ?, ?, ?, ?, ?, ?)
...
java.sql.SQLException: General error: Column
'flight_id_fk' specified twice



The problem obviously being the two instances of
person_id_fk in the INSERT statement. Kasper got this
problem with a Sapdb datasource and I am getting it
with MySql so it is probably not a data source issue.
It may be a JBoss bug though?

Is the code above that I used to populate the objects
close enough to correct?

Has anyone else got this working with some differences
(such as different JBoss version or different
database)?

I have attached more info from the Jboss logs. If it
doesn't come through or it would help to have a copy
of the .war used to test this then let me know and
I'll send it.

cheers,
Adrian

http://mobile.yahoo.com.au - Yahoo! Messenger for SMS
- Always be connected to your Messenger Friends
2002-10-05 03:52:12,327 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Flight] Create: pk=8
2002-10-05 03:52:12,327 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Flight] Executing SQL: SELECT 
COUNT(*) FROM flights WHERE flight_id=?
2002-10-05 03:52:12,338 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Flight] Executing SQL: INSERT 
INTO flights (flight_id, name, departure_utc, arrival_utc) VALUES (?, ?, ?, ?)
2002-10-05 03:52:12,338 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Flight] Rows affected = 1
2002-10-05 03:52:12,378 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Person] Create: pk=6
2002-10-05 03:52:12,378 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Person] Executing SQL: SELECT 
COUNT(*) FROM persons WHERE person_id=?
2002-10-05 03:52:12,378 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Person] Executing SQL: INSERT 
INTO persons (person_id, first_name, last_name) VALUES (?, ?, ?)
2002-10-05 03:52:12,388 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Person] Rows affected = 1
2002-10-05 03:52:12,408 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCFindByPrimaryKeyQuery.Sequence.findByPrimaryKey] 
Executing SQL: SELECT name FROM SEQ_BLOCK WHERE name=?
2002-10-05 03:52:12,408 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Sequence] Create: 
pk=reservations.reservation_id
2002-10-05 03:52:12,408 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Sequence] Executing SQL: 
SELECT COUNT(*) FROM SEQ_BLOCK WHERE name=?
2002-10-05 03:52:12,408 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Sequence] Executing SQL: 
INSERT INTO SEQ_BLOCK (name, idx) VALUES (?, ?)
2002-10-05 03:52:12,408 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Sequence] Rows affected = 1
2002-10-05 03:52:12,418 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Reservation] Create: 
pk=[.5.null.null.]
2002-10-05 03:52:12,418 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Reservation] Executing SQL: 
SELECT COUNT(*) FROM reservations WHERE reservation_id=? AND person_id_fk=? AND 
flight_id_fk=?
2002-10-05 03:52:12,458 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Reservation] Executing SQL: 
INSERT INTO reservations (reservation_id, person_id_fk, flight_id_fk, 
registration_utc, comment, person_id_fk, flight_id_fk) VALUES (?, ?, ?, ?, ?, ?, ?)
2002-10-05 03:52:12,458 ERROR 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Reservation] Could not create 
entity
java.sql.SQLException: General error: Column 'flight_id_fk' specified twice
        at org.gjt.mm.mysql.MysqlIO.sendCommand(Unknown Source)
        at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(Unknown Source)
        at org.gjt.mm.mysql.Connection.execSQL(Unknown Source)
        at org.gjt.mm.mysql.PreparedStatement.executeUpdate(Unknown Source)
        at org.gjt.mm.mysql.PreparedStatement.executeUpdate(Unknown Source)
        at 
org.jboss.resource.adapter.jdbc.local.LocalPreparedStatement.executeUpdate(LocalPreparedStatement.java:308)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.insertEntity(JDBCCreateEntityCommand.java:196)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.execute(JDBCCreateEntityCommand.java:131)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.createEntity(JDBCStoreManager.java:527)
        at 
org.jboss.ejb.plugins.CMPPersistenceManager.createEntity(CMPPersistenceManager.java:253)
        at 
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.createEntity(CachedConnectionInterceptor.java:270)
        at org.jboss.ejb.EntityContainer.createLocalHome(EntityContainer.java:579)
        at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at 
org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:1116)
        at 
org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:73)
        at 
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:209)
        at 
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invokeHome(CachedConnectionInterceptor.java:215)
        at 
org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:88)
        at 
org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:79)
        at 
org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(EntityCreationInterceptor.java:44)
        at 
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:111)
        at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:178)
        at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:52)
        at 
org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:105)
        at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:129)
        at org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:487)
        at 
org.jboss.ejb.plugins.local.BaseLocalContainerInvoker.invokeHome(BaseLocalContainerInvoker.java:230)
        at org.jboss.ejb.plugins.local.LocalHomeProxy.invoke(LocalHomeProxy.java:110)
        at $Proxy410.create(Unknown Source)
        at org.bugsample.struts.BugSampleAction.execute(Unknown Source)
        at 
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:446)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:266)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:344)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:313)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:554)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler.handle(WebApplicationHandler.java:199)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1572)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1522)
        at org.mortbay.http.HttpServer.service(HttpServer.java:795)
        at org.jboss.jetty.Jetty.service(Jetty.java:531)
        at org.mortbay.http.HttpConnection.service(HttpConnection.java:784)
        at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:941)
        at org.mortbay.http.HttpConnection.handle(HttpConnection.java:799)
        at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:186)
        at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:322)
        at org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:716)
        at java.lang.Thread.run(Thread.java:536)
2002-10-05 03:52:12,578 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreEntityCommand.Sequence] Executing SQL: UPDATE 
SEQ_BLOCK SET idx=? WHERE name=?
2002-10-05 03:52:12,578 DEBUG 
[org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreEntityCommand.Sequence] Rows affected = 1
2002-10-05 03:52:12,578 INFO  [BugSample] javax.ejb.CreateException: Could not create 
entity:java.sql.SQLException: General error: Column 'flight_id_fk' specified twice
2002-10-05 03:52:13,860 INFO  [org.apache.struts.util.PropertyMessageResources] 
Initializing, config='org.apache.struts.taglib.html.LocalStrings', returnNull=true
2002-10-05 03:52:13,870 INFO  [org.apache.struts.util.PropertyMessageResources] 
Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
2002-10-05 03:52:13,870 INFO  [org.apache.struts.util.PropertyMessageResources] 
Initializing, config='org.apache.struts.taglib.html.LocalStrings', returnNull=true
2002-10-05 03:52:13,870 INFO  [org.apache.struts.util.PropertyMessageResources] 
Initializing, config='org.apache.struts.taglib.logic.LocalStrings', returnNull=true
2002-10-05 03:52:13,870 INFO  [org.apache.struts.util.PropertyMessageResources] 
Initializing, config='org.apache.struts.taglib.html.LocalStrings', returnNull=true
2002-10-05 03:52:13,870 INFO  [org.apache.struts.util.PropertyMessageResources] 
Initializing, config='org.apache.struts.taglib.html.LocalStrings', returnNull=true
2002-10-05 03:52:13,870 INFO  [org.apache.struts.util.PropertyMessageResources] 
Initializing, config='org.apache.struts.taglib.html.LocalStrings', returnNull=true

Reply via email to