Example 2.14. Example properties for MySQL
openjpa.ConnectionDriverName: com.mysql.jdbc.Driver openjpa.ConnectionURL: jdbc:mysql://SERVER_NAME/DB_NAME
The default table types that MySQL uses do not support transactions, which will
prevent OpenJPA from being able to roll back transactions. Use the
InnoDB
table type for any tables that OpenJPA will access.
MySQL does not support sub-selects in versions prior to 4.1, and are disabled by
default. Some operations (such as the isEmpty()
method in a
query) will fail due to this. If you are using MySQL 4.1 or later, you can lift
this restriction by setting the SupportsSubselect=true
parameter of the
openjpa.jdbc.DBDictionary property.
Rollback due to database error or optimistic lock violation is not supported
unless the table type is one of the MySQL transactional types. Explicit calls to
rollback()
before a transaction has been committed,
however, are always supported.
Floats and doubles may lose precision when stored in some datastores.
When storing a field of type java.math.BigDecimal
, some
datastores will add extraneous trailing 0 characters, causing an equality
mismatch between the field that is stored and the field that is retrieved.
Some version of the MySQL JDBC driver have a bug that prevents OpenJPA from being able to interrogate the database for foreign keys. Version 3.0.14 (or higher) of the MySQL driver is required in order to get around this bug.