You are right: "INTEGER [UNSIGNED] [...] java.lang.Integer, if
UNSIGNED java.lang.Long". Who would've thought! :-)
I'd appreciate a Jira issue so that we don't forget about it.
Andrus
On Aug 29, 2006, at 3:40 PM, Tobias SCHOESSLER wrote:
For the driver I use mysql-connector-java-3.1.13-bin.jar
here
http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-type-
conversions.html
it reads that INT UNSIGNED should map to java.lang.Long. This is
fine I
think and it is correct right after creation of the object.
But why is the type of the column java.lang.Integer when I retrieve
the
value later via cayenne? Isn't the bug rather to search there?
Andrus Adamchik
<[EMAIL PROTECTED]
le.org> To
cayenne-
[EMAIL PROTECTED]
Tuesday,
29 cc
August 2006 13:27
Subject
Re: Problems with MySql id type
Please respond to with AUTO_INCREMENT
[EMAIL PROTECTED]
bator.apache.org
I don't think that globally changing INT to be mapped to JDBC BIGINT
is a good idea (although this can be done by editing org/objectstyle/
cayenne/dba/mysql/types.xml). What is confusing to me is why the
generated key is java.lang.Long for the INTEGER column. Could be a
MySQL driver bug???
Andrus
On Aug 29, 2006, at 3:15 PM, Tobias SCHOESSLER wrote:
it was mapped as
<db-attribute ... type="INTEGER" length="10"/>
I changed the type to BIGINT and now the PK is always a Long. Great,
thanks. This was hard to guess.
Is the jdbc type mapping messed up for the MySQL Adapter?
When I reverse engineer the db from scratch
INT UNSIGNED is mapped as <db-attribute ... type="INTEGER"
length="10"/>
INT is mapped as <db-attribute ... type="INTEGER" length="11"/>
Could you give me a hint where to change this mapping so I do not
have to
set it to BIGINT manually?
thank you
Tobias
Andrus Adamchik
<[EMAIL PROTECTED]
le.org> To
cayenne-
[EMAIL PROTECTED]
Tuesday,
29 cc
August 2006 11:00
Subject
Re: Problems with MySql id
type
Please respond to with AUTO_INCREMENT
[EMAIL PROTECTED]
bator.apache.org
How is the column mapped in the Modeler? Have you tried mapping it as
BIGINT?
Andrus
On Aug 28, 2006, at 1:22 PM, Tobias SCHOESSLER wrote:
I use cayenne 1.2, MySql. AUTO_INCREMENT ids
the type of the id field in the mysql schema is set to
INT NOT NULL AUTO_INCREMENT UNIQUE
I create an object of this table with cayenne and commit. I see the
row
inserted ok. When accessing the Id of the object via
getObjectId().getIdSnapshot().get(this.FOLDER_UID_PK_COLUMN)
in the same DataContext the type of the Object retruned is a Long.
(Though
I would have expected it to be an Integer from the MySql jdbc
documentation)
When I use a fresh DataContext and retrieve the same row the id
object
returned by
getObjectId().getIdSnapshot().get(this.FOLDER_UID_PK_COLUMN)
seems to be an Integer ?
I tried to set the type to
INT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE
which is supposed to be of Long type from the jdbc type
documentation of
MySql.
to force the id object always to be a Long but cayenne still
returns an
Integer when reading from the db.
any ideas?
thanks