Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Mysql Mapping

Hi, my fault. The two classes with the problem contains a field with @PrimaryKeyJoinColumn and the referenced class not contain the Id field with the type Long but the class. Changing the class by Long works fine.


On 25-08-2008, at 10:16, Tom Ware wrote:

I am surprised your Long is being mapped as a Blob. The field type mappings actually map a Long as a BIGINT.

You should be able to see the table generation syntax by turning on logging. Add the property: eclipselink.logging.level=FINEST to your persistence unit.

You can also have the table creation SQL generated to a file by adding the following two properties to your persistence unit:

- the value "both" for this setting will allow you to both go the the DB and get the sQL script

I am wondering if EclipseLink is detecting that MySQL is being used in your application. Try setting the following property in your persistence unit and see if it helps:


Alejandro de Brito Fontes wrote:
Hi, I'm using Mysql as platform database and I have some problems wih Id mappings. In some classes the Long field with Id annotation are generated as Blob instead of BigInt.
The Id fields are like this.
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   @Column(name = "ID_PK")
   private Long id;
Also try to annotate the getters and the behavior is the same.
This mapping error generate this error on runtime when I try to load something from the entity: Exception [EclipseLink-3001] (Eclipse Persistence Services - 1.1 (Build SNAPSHOT - 20080822)): org.eclipse.persistence.exceptions.ConversionException Exception Description: The object [2], of class [class java.lang.Long], could not be converted to [class [B]. at org .eclipse .persistence .exceptions .ConversionException.couldNotBeConverted( at org .eclipse .persistence .internal .helper .ConversionManager.convertObjectToByteArray( 331) at org .eclipse .persistence .internal .helper.ConversionManager.convertObject( at org .eclipse .persistence .internal .databaseaccess .DatasourcePlatform.convertObject( at org .eclipse .persistence .internal .descriptors .ObjectBuilder.extractPrimaryKeyFromRow( at org .eclipse .persistence .internal .descriptors .ObjectBuilder.extractPrimaryKeyFromExpression( 1717)
Inspecting the stacktrace I found in the class MySQLPlatform that the id field is being mapped as Byte[] fieldTypeMapping.put(Byte[].class, new FieldTypeDefinition("BLOB", 64000));
Any idea?
Mysql driver 5.0.8 or 5.1.4. <http://5.1.4.>
Mysql db version 5.0.45. <http://5.0.45.>
OS: osx 10.5 or windows XP SP2
Thanks in advance.
eclipselink-users mailing list
eclipselink-users mailing list

Back to the top