Have you double-checked your DB schema to make sure the table and column
names are correct? The container is trying to do a SQL insert and is
being told that the DESC column doesn't exist in the ROLES table. Does
it? With WebLogic, it verifies all table/column names at deployment
time. You might want to see if JBoss has that feature.

As a sample that might help you, here's a simple Address object from my
project. Again, WL versus JBoss, but note the other differences:

- No use of @ejb:persistent-field (isn't this deprecated in favor of
ejb.persistence?)
- No need for JDBC nor SQL types. Maybe JBoss requires them, but WL
figures it out.

Also, when you specify jboss.sql-type you do "type=...". Should it not
be

  * @jboss.sql-type "VARCHAR"

? This is how the delay-insert-until tag works as it has just the one
attribute.

In any case, I don't think any of that should be causing your problem,
as you can see the generated SQL looks fine, assuming that it matches
your schema.

/**
 * This is the Address entity bean.
 *
 * @ejb.bean
 *      name="Address"
 *      display-name="Address"
 *      view-type="local"
 *      jndi-name="identity/remote/AddressHome"
 *      local-jndi-name="identity/local/AddressHome"
 *      type="CMP"
 *      cmp-version="2.x"
 *      primkey-field="id"
 *
 * @ejb.persistence
 *      table-name="address"
 */
public abstract class AddressEJB extends BaseEJB
{
  /**
   * @ejb.interface-method
   * @ejb.transaction type="Supports"
   * @ejb.persistence
   *      column-name="line1"
   */
  public abstract String getLine1 ( ) ;

  /**
   * @ejb.interface-method
   * @ejb.transaction type="Mandatory"
   */
  public abstract void setLine1 ( String line1 ) ;
}

David Harkness
Sr. Software Engineer
Sony Pictures Digital Networks
(310) 482-4756


-----Original Message-----
From: Kevin Norton [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 24, 2003 4:08 PM
To: [EMAIL PROTECTED]
Subject: [Xdoclet-user] Newbie, Help with basic CMP Entity Bean using
Jboss


I have put in about 3 days worth of struggling to use Xdoclet. Need
basic 
beginner help.

I can get my Entity Bean to launch and I can get a handle to the home 
interface by using the generated Util Class. But when I try to call my 
create method I get the following error.

javax.ejb.CreateException: Could not create
entity:java.sql.SQLException: 
Column not found: DESC in statement [INSERT INTO ROLES (name, desc, 
comments) VALUES ('Kevin', 'All', 'Everyone')] at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.insertEntity(JDBC
CreateEntityCommand.java:199

My Base Bean is as follows. Any pointer and help as to why I'm getting
this 
error would be greatly appreciated and have much impact on how much more

time I put into learning xdoclet.
Thanks...

package test.ejb;

import test.interfaces.*;
import javax.ejb.EntityBean;
import javax.ejb.CreateException;


/**
* @ejb:bean
*      name="Roles"
*      type="CMP"
*      view-type="local"
*      local-jndi-name="test.interfaces.RolesLocalHome"
*      schema="Roles"
*
* @ejb.util generate="physical"
* @ejb.finder signature="java.util.Collection findAll()"
* @ejb:value-object name="Roles" match="*"
*
*/
public abstract class RolesBean implements EntityBean
{

    /**
     * @ejb.pk-field
     * @ejb.persistent-field
     * @ejb.persistence
     *      column-name="NAME"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(255)"
     * @ejb.interface-method
     */
    public abstract String getName();

    public abstract void setName(String name);
    /**
     * @ejb:interface-method
     * @ejb:persistent-field
     * @ejb.persistence
     *      column-name="desc"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(255)"
     *  @jboss.column-name name="desc"
     *  @jboss.sql-type type = "varchar(255)"
     *  @jboss.jdbc-type type = "VARCHAR"
     */
    public abstract String getDesc();

    public abstract void setDesc(String desc);
    /**
     * @ejb:interface-method
     * @ejb:persistent-field
     * @ejb.persistence
     *      column-name="comments"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(255)"
     *  @jboss.column-name name="comments"
     *  @jboss.sql-type type = "varchar(255)"
     *  @jboss.jdbc-type type = "VARCHAR"
     */
    public abstract String getComments();

    public abstract void setComments(String comments);

    /**
     * @ejb.create-method
     */
    public RolesPK ejbCreate(String name,String desc,String comments )
        throws CreateException
    {
        setName(name);
        setDesc(desc);
        setComments(comments);
        return null;
    }
    public void ejbPostCreate(String name,String desc, String comments
)
        throws CreateException {}
}

_________________________________________________________________
Get McAfee virus scanning and cleaning of incoming attachments.  Get
Hotmail 
Extra Storage!   http://join.msn.com/?PAGE=features/es



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf _______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user

Reply via email to