Hibernate colonne d'annotation de TEXTE
J'ai un spring MVC démarrage de l'application avec une base de données MySQL et je vais essayer d'obtenir un champ de TEXTE dans ma base de données. J'ai le code suivant:
Member.java
@Entity
public class Member {
private Long id;
private String name;
@Column(columnDefinition = "TEXT")
private String biography;
private String country;
private String state;
private String city;
private Date dateOfBirth;
private String gender;
//Getters and setters
application.propriétés
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
spring.datasource.url=jdbc:mysql://localhost:3306/wave
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=mysql
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.h2.console.enabled=true
Et c'est ici la veille prolongée, il crée
Hibernate: drop table if exists member
Hibernate: create table member (id bigint not null auto_increment, biography varchar(255), city varchar(255), country varchar(255), date_of_birth date, gender varchar(255), name varchar(255), state varchar(255), primary key (id)) ENGINE=InnoDB
Elle définit toujours comme un varchar(255). Quelqu'un peut m'aider avec ce problème? Je vous remercie à l'avance.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
@Lob
de javax.la persistance... c'est plus élégant:Dans
org.hibernate.dialect.MySQLDialect
classe il y a une ligne:En se basant sur que si vous définissez votre champ comme ceci:
il devrait faire l'affaire.
@org.hibernate.annotations.Type( type = "text" )
sur la variable de Chaîne. Essayez-la sur la variable, mais pas sur getterEn laissant la définition de la colonne pourrait résoudre le problème (Seulement annoter avec
@Column
, hibernate est intelligent pour le comprendre), maisvarchar
est le remplacement detext
dans les plus récentes versions de serveurs sql, donc je pense qu'il n'y a rien de mal avec l'aide devarchar
. (255) est la longueur par défaut.