Hello,
While using CMP, I need to store a String password in a RAW(32) Oracle field
(after some transformation).
But I have been unsuccesfull until now...
I have create a new class implementing Externalizable and implementing the
writeExternal and readExternal and simply serializing a string. In my
ejb-jar.xml, I have:
<cmp-field><field-name>_serializedPassword</field-name></cmp-field>
And in jaws.xml I have:
<cmp-field>
<field-name>_serializedPassword</field-name>
<column-name>USER_PASSWORD</column-name>
<sql-type>RAW(32)</sql-type>
<jdbc-type>JAVA_OBJECT</jdbc-type>
</cmp-field>
But I receive when inserting a new bean:
[JAWS] Exists command executing: SELECT COUNT(*) FROM USER WHERE X_ID=?
[JAWS] Set parameter: idx=1, jdbcType=INTEGER, value=236
[JAWS] Create command executing: INSERT INTO USER
(USER_LOGIN_NAME,USER_VALIDE,USER_FULL_NAME,USER_PASSWORD,X_ID) VALUES
(?,?,?,?,?)
[JAWS] Set parameter: idx=1, jdbcType=VARCHAR, value=myUsername0
[JAWS] Set parameter: idx=2, jdbcType=BIT, value=true
[JAWS] Set parameter: idx=3, jdbcType=VARCHAR, value=myName0
[JAWS] Set parameter: idx=4, jdbcType=JAVA_OBJECT, value=NULL
[JAWS] java.sql.SQLException: Type de colonne non valide
[JAWS] at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
[JAWS] at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
[JAWS] at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:273)
[JAWS] at
oracle.jdbc.driver.OracleStatement.get_internal_type(OracleStatement.java:45
60)
[JAWS] at
oracle.jdbc.driver.OraclePreparedStatement.setNull(OraclePreparedStatement.j
ava:869)
[JAWS] at
org.jboss.ejb.plugins.jaws.jdbc.JDBCCommand.setParameter(JDBCCommand.java:28
0)
[JAWS] at
org.jboss.ejb.plugins.jaws.jdbc.JDBCCreateEntityCommand.setParameters(JDBCCr
eateEntityCommand.java:165)
[JAWS] at
org.jboss.ejb.plugins.jaws.jdbc.JDBCCommand.jdbcExecute(JDBCCommand.java:159
)
[JAWS] at
org.jboss.ejb.plugins.jaws.jdbc.JDBCCreateEntityCommand.execute(JDBCCreateEn
tityCommand.java:135)
[JAWS] at
org.jboss.ejb.plugins.jaws.JAWSPersistenceManager.createEntity(JAWSPersisten
ceManager.java:122)
[JAWS] at
org.jboss.ejb.plugins.CMPPersistenceManager.createEntity(CMPPersistenceManag
er.java:211)
Any idea on how to map this correctly (I am not allowed to change the
underlying database type because this DB (and schema) is shared by others
legacy apps.)
Thank you. Cheers,
Sacha
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-user