Clob and Oracle
asoupper Apr 23, 2004 2:47 AMHi all,
these days I'm trying to change a BMP entity in a CMP.
I had strictly no problem with my CMP but I want to explore the BMP possibilities and performances.
But It seems I have a problem with the CLOB field of my bean:
- No data is retrieve when loading loading the BMP
- An exception is thrown upon insertion of long string in the CLOB field:
javax.ejb.EJBException: Internal error setting parameters for field content; CausedByException is: Data size bigger than max size for this type: 7115570 at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractCMPFieldBridge.setArgumentParameters(JDBCAbstractCMPFieldBridge.java:297) at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractCMPFieldBridge.setInstanceParameters(JDBCAbstractCMPFieldBridge.java:270) at org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.insertEntity(JDBCCreateEntityCommand.java:192) 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)
Environment:
- JBoss 3.0.8
- Oracle 8.1.7
My Bean:
/**
* @ejb.bean
* name="LogItem"
* view-type="both"
* type="CMP"
* primkey-field="id"
* cmp-version = "2.x"
* jndi-name="theLogItem"
*
* @ejb:transaction
* type="Required"
*
* @ejb.persistence
* table-name="LOGDATA"
*
* @jboss.persistence
* create-table = "false"
* remove-table = "false"
*
*/
public abstract class SessionLogItemEJBBean implements EntityBean {
//==========================================
// Business Methods
//==========================================
...
//==========================================
// CMP fields
//==========================================
/**
* @ejb.pk-field
*
* @ejb.persistence
* column-name = "LOGDATA_ID"
* jdbc-type = "INTEGER"
*
*/
public abstract Long getId();
public abstract void setId(Long id);
/**
* @ejb.persistence
* column-name = "LOGDATA_CONTENT"
* jdbc-type = "CLOB"
*/
public abstract String getContent();
public abstract void setContent(String content);
/**
* @ejb.persistence
* column-name = "LOGDATA_TYP"
* jdbc-type = "VARCHAR"
* sql-type = "varchar(300)"
*/
public abstract String getType();
public abstract void setType(String type);
//==========================================
// CMR fields
//==========================================
//==========================================
// EJB Callbacks
//==========================================
/**
* @ejb.create-method
* view-type = "both"
*/
public Long ejbCreate( ... )throws CreateException{
...
return null;
}
public void ejbPostCreate( ... )throws CreateException{
}
}
Can someone tell what I am missing or if there is a problem with this kind of stuff (and it's workaround).
Best regards,
Alban.