[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-468) MysqlDialect incorrectly maps java.lang.Boolean to SQL BIT
Laurent Mallet (JIRA)
noreply at atlassian.com
Thu May 8 04:46:33 EDT 2008
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_30146 ]
Laurent Mallet commented on HHH-468:
------------------------------------
Hi gavin,
My team is working with Seam and jboss 4.2 and discover this bug when we install our application on the pre-production plateform
on our entities objects.
Our pre-production and production plateforms are in RHEL 5. Our developpement plateform is on RHEL 4.
The main difference is also the MySQL version.
This bug is really annonying because :
- RHEL 5 install version 5 of MySQL (No support on MySQL 4)
- MySQL 4 is at end of his lifecycle
- in JPA, it's so ugly to change our code from boolean to int
- a search in google "MySQL 5 boolean BIT problem" shows so many desesperate people
- credibility of jboss : this bug is so annoying that my team doesn't understand that it could be possible; they are afraid that it could have
other ugly bugs..
Laurent Mallet
CTO of Oxalya
> MysqlDialect incorrectly maps java.lang.Boolean to SQL BIT
> ----------------------------------------------------------
>
> Key: HHH-468
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-468
> Project: Hibernate3
> Issue Type: Bug
> Affects Versions: 3.0.3
> Environment: Hibernate 3.0, MySQL.
> Reporter: Mark Matthews
> Assignee: Scott Marlow
>
> I didn't track down how java.lang.Boolean gets mapped to Types.BIT in hibernate, but you probably _don't_ want to map to "bit" like you do in MysqlDialect.
> "bit", according to SQL99 (it's not in the core standard, and the type was actually dropped for sql2k3) is a bitfield, not a boolean value. You can of course define a bit(1), but it is technically more correct for java.lang.Boolean to map to a SQL BOOLEAN for MySQL since we support a BOOLEAN and a BIT.
> It looks like the JDBC-3.0 guys ignored what the standard said, because in reality you'd want BIT to map to something like byte[], or java.util.BitSet if you were tracking how the SQL standard defines BIT.
> I'm guessing you probably want to map to "boolean", which the JDBC driver will automagically convert for you, as it silently maps to TINYINT(1) on the server side.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list