10
votes

Comment la carte est-elle un type dans MySQL pour hiberner?

J'utilise le planification inverse de ma classe et obtenez ceci:

CREATE TABLE  `bytecode`.`user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `email` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `type` bit(1) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;


0 commentaires

4 Réponses :


2
votes

Devez-vous l'avoir comme un type code> type code> MySQL? La solution la plus simple consisterait à modifier le type de données dans MySQL vers Tinyint (1) code>.

Sinon, vous devriez pouvoir mapper votre type d'entité à un entier utilisant des annotations; Strike> Pas sûr de cela, devez le rechercher P>

...
@Column(nullable=false)
@Type(type="org.hibernate.type.BooleanType")
private short type;


1 commentaires

Je voudrais changer cela dans le MySQL, mais dans pas le DBA, je pense que je pense que je change mieux dans Hibernate puis demander à changer de base de données. Je vais essayer votre approche.



9
votes

hibernate a un type spécial numeric_boolcan pour ce type de cartographie. Vous pouvez le configurer comme suit: xxx

Voir aussi:


0 commentaires

0
votes

http://bugs.mysql.com/bug.php?id=28422 < / a> suggère qu'il s'agit d'un bug. http://www.xaprb.com/blog/ 2006/04/11 / bit-valeurs-in-mysql / suggère qu'il serait sage de le sauter. Mais bien sûr, vous ne pouvez pas dire à la DBA de ne pas utiliser une colonne de bit dans MySQL - ce qui signifie que nous devons utiliser et une version plus ancienne de MySQL (<5.0.3) ou n'utilisez pas le tout + hibernate de MySQL.


0 commentaires

3
votes

J'ai eu un problème similaire. La cartographie suivante en Java a résolu mon problème:

@Column(name = "columnName", columnDefinition="BIT")
private Boolean columnVariable;


1 commentaires

Boolean ... une enveloppe dangereuse: définie comme null si elle n'est pas initialisée. Avait beaucoup de problèmes avec un code mal testé qui jetait une exception dans l'environnement de production.