Hi,

I have some problems with my FindByPrimaryKey method (cf. SERVER.LOG).
Maybe the deployers files (EJB-JAR and JAWS) are false.

Thanks very much in advance,

Sylvain Tourriere

----------------------------------------------------------------------------
-
My config :
- JBOSS 2.0 running on my desktop (Windows2000)
- Database : mySQL (v 3.23.35a) on my desktop

My database :
mysql> desc im_url;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id         | int(10)     |      | PRI | 0       |       |
| host       | text        |      |     |         |       |
| host_name  | varchar(30) | YES  |     | NULL    |       |
| method     | varchar(4)  | YES  |     | NULL    |       |
| frequency  | int(10)     | YES  |     | NULL    |       |
| threshold  | int(10)     | YES  |     | NULL    |       |
| begin_day  | varchar(10) | YES  |     | NULL    |       |
| end_day    | varchar(10) | YES  |     | NULL    |       |
| begin_time | datetime    | YES  |     | NULL    |       |
| end_time   | datetime    | YES  |     | NULL    |       |
| user_name  | varchar(15) |      |     |         |       |
| parameters | text        | YES  |     | NULL    |       |
| bench      | tinyint(1)  | YES  |     | 0       |       |
| stamp      | datetime    | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
14 rows in set (0.08 sec)

my Data :
        Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-1999 Microsoft Corp.

C:\>cd mysql

C:\mysql>mysql
'mysql' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.

C:\mysql>cd bin

C:\mysql\bin>mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 3.23.35a

Type 'help;' or '\h' for help. Type '\c' to clear the buffer

mysql> use IMonitor
Database changed
mysql> desc im_url
    -> ;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id         | int(10)     |      | PRI | 0       |       |
| host       | text        |      |     |         |       |
| host_name  | varchar(30) | YES  |     | NULL    |       |
| method     | varchar(4)  | YES  |     | NULL    |       |
| frequency  | int(10)     | YES  |     | NULL    |       |
| threshold  | int(10)     | YES  |     | NULL    |       |
| begin_day  | varchar(10) | YES  |     | NULL    |       |
| end_day    | varchar(10) | YES  |     | NULL    |       |
| begin_time | datetime    | YES  |     | NULL    |       |
| end_time   | datetime    | YES  |     | NULL    |       |
| user_name  | varchar(15) |      |     |         |       |
| parameters | text        | YES  |     | NULL    |       |
| bench      | tinyint(1)  | YES  |     | 0       |       |
| stamp      | datetime    | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
14 rows in set (0.08 sec)

mysql> select id from im_url;
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-1999 Microsoft Corp.

C:\>cd mysql

C:\mysql>mysql
'mysql' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.

C:\mysql>cd bin

C:\mysql\bin>mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 3.23.35a

Type 'help;' or '\h' for help. Type '\c' to clear the buffer

mysql> use IMonitor
Database changed
mysql> desc im_url
    -> ;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id         | int(10)     |      | PRI | 0       |       |
| host       | text        |      |     |         |       |
| host_name  | varchar(30) | YES  |     | NULL    |       |
| method     | varchar(4)  | YES  |     | NULL    |       |
| frequency  | int(10)     | YES  |     | NULL    |       |
| threshold  | int(10)     | YES  |     | NULL    |       |
| begin_day  | varchar(10) | YES  |     | NULL    |       |
| end_day    | varchar(10) | YES  |     | NULL    |       |
| begin_time | datetime    | YES  |     | NULL    |       |
| end_time   | datetime    | YES  |     | NULL    |       |
| user_name  | varchar(15) |      |     |         |       |
| parameters | text        | YES  |     | NULL    |       |
| bench      | tinyint(1)  | YES  |     | 0       |       |
| stamp      | datetime    | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
14 rows in set (0.08 sec)

mysql> select id from im_url;
+-----+
| id  |
+-----+
| 100 |
+-----+
mysql>

Client coding :
        ...
      UrlPK myUrlPK = new UrlPK(100);
      Url mySecondUrl = myUrlHome.findByPrimaryKey(myUrlPK);
        ...

UrlPK Class :
public class UrlPK implements java.io.Serializable
{
        public int id; // Attribut de la classe UrlPK
        public UrlPK() {}
        public UrlPK(int value) {this.id = value;}
        public int getId() {return id;}
        public int hashCode() {return id;}
        public boolean equals(Object obj) {
                if (obj instanceof UrlPK){return (id == ((UrlPK) obj).id);}
                return false;
        }
        public String toString() {return String.valueOf(id);}
}

JAWS.XML :
    <type-mappings>
      <type-mapping>
          <name>mySQL</name>
          <mapping>
              <java-type>IMonitor.entity.UrlPK</java-type>
              <jdbc-type>INTEGER</jdbc-type>
              <sql-type>INTEGER</sql-type>
          </mapping>
        </type-mapping>
    </type-mappings>

EJB-JAR.XML :
    <entity>
      <ejb-name>Url</ejb-name>
        ...
      <prim-key-class>IMonitor.entity.UrlPK</prim-key-class>
        ...
      <cmp-field>
        <field-name>id</field-name>
      </cmp-field>
        ...

Server.log :
[JAWS] java.sql.SQLException: Cannot convert class IMonitor.entity.UrlPK to
SQL type requested
[JAWS]  at
org.gjt.mm.mysql.PreparedStatement.setObject(PreparedStatement.java:930)
[JAWS]  at
org.gjt.mm.mysql.PreparedStatement.setObject(PreparedStatement.java:936)
[JAWS]  at
org.opentools.minerva.jdbc.PreparedStatementInPool.setObject(PreparedStateme
ntInPool.java:282)
[JAWS]  at
org.jboss.ejb.plugins.jaws.jdbc.JDBCCommand.setParameter(JDBCCommand.java:33
3)
[JAWS]  at
org.jboss.ejb.plugins.jaws.jdbc.JDBCCommand.setPrimaryKeyParameters(JDBCComm
and.java:370)
[JAWS]  at
org.jboss.ejb.plugins.jaws.jdbc.JDBCBeanExistsCommand.setParameters(JDBCBean
ExistsCommand.java:60)
[JAWS]  at
org.jboss.ejb.plugins.jaws.jdbc.JDBCCommand.jdbcExecute(JDBCCommand.java:158
)
[JAWS]  at
org.jboss.ejb.plugins.jaws.jdbc.JDBCBeanExistsCommand.execute(JDBCBeanExists
Command.java:46)
[JAWS]  at
org.jboss.ejb.plugins.jaws.jdbc.JDBCFindEntityCommand.findByPrimaryKey(JDBCF
indEntityCommand.java:83)
[JAWS]  at
org.jboss.ejb.plugins.jaws.jdbc.JDBCFindEntityCommand.execute(JDBCFindEntity
Command.java:59)
[JAWS]  at
org.jboss.ejb.plugins.jaws.JAWSPersistenceManager.findEntity(JAWSPersistence
Manager.java:130)
[JAWS]  at
org.jboss.ejb.plugins.CMPPersistenceManager.findEntity(CMPPersistenceManager
java:270)
[JAWS]  at org.jboss.ejb.EntityContainer.find(EntityContainer.java:419)
[JAWS]  at java.lang.reflect.Method.invoke(Native Method)


_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to