Auto increment - Mysql - EJB - Xdoclet - jboss

6 respostas
bhleitao

E ai galera,
É o seguinte, estou tentando fazer persistencia de dados no meu ejb utilizando o mysql. Mas eu tenho que setar o id na mão, visto que não consigo deixar o mesmo em auto_increment. Alguém já passou por isso. Veja meu código:

/**

  • @ejb.bean name=“SimpleBean”
  • jndi-name="SimpleBean"
    
  • type="CMP"
    
  • cmp-version="2.x"
    
  • primkey-field="ID"
    
  • remove-table="true"
    
  • @jboss.entity-command
  • name="mysql-get-generated-keys"
    
  • @jboss.unknown-pk class=“java.lang.Integer”
  • auto-increment="true"
    

*/

E o no método getID, vejam:

/**
* @ejb.pk-field
* @ejb.interface-method
* @ejb.persistence
*/
public abstract Integer getID();

Quanto ao xml gerado, nada de referenciar o auto increment, nem o mysql-get-generated-keys. Tentei desabilitar a tag auto-increment e nada também. Alguém tem alguma idéia?

Veja como é a query no mysql:

CREATE TABLE SimpleBean (ID INTEGER NOT NULL, name VARCHAR(250) BINARY, value VARCHAR(250) BINARY, CONSTRAINT pk_SimpleBean PRIMARY KEY (ID))

Obrigado
Abraços.

Breno Leitão.
PS: Acho que eu não sei utilizar aqueles combos para mostrar código… :-(. podem me dizer?

6 Respostas

J

vc poderia fazer da seguinte maneira

CREATE TABLE SimpleBean( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(250), value VARCHAR(250) )

Ve se funcionou e fala p nois…

ps. pra que esse binary ae ?

bhleitao

Entao JBoy,
Esse sql é o Jboss quem cria, sacou?! Ele o cria através xdoclet que criou o ejb-jar.xml.
Assim, deve-se passar algum parametro para o jboss criar o sql de forma adequada. This is the question. :wink:

Abraços
Breno H. Leitão.

J

hehe mal ai veio

fabio.ita04

em
http://wiki.jboss.org/wiki/Wiki.jsp?page=NukesPureCMP

há o seguinte trecho de código:

primary key getter method

@jboss.persistence not-null = "true" auto-increment = "true" dbindex = "true" @jboss.sql-type type = "${nukes.pk-sql-type}" @jboss.jdbc-type type = "${nukes.pk-jdbc-type}"

não testei, mas deve ajudar no seu caso.

abs,
Fábio.

jgbt

e nãos sei se é mesmo caso, mas quando usei sequnce do oracle p/ gerar as chaves, tinha que passas sempre o valor, zero, depois ele se achava.
por exemplo, se meu campo era Integer, eu tinha que passara um new Integer(0) para o entity.

[]'s

fabio.ita04

testei o código citado anteriormente e ele funcionou.

abs.

Criado 3 de fevereiro de 2005
Ultima resposta 19 de mai. de 2005
Respostas 6
Participantes 4