我无法执行此SQL脚本:
INSERT INTO `mabase`.`new_table` (`idnew_table`, `name`) VALUES ('2', '');
Run Code Online (Sandbox Code Playgroud)
错误是:
错误1366:字符串值不正确:第1行的列'name'为'\ xF0\xA0\xBC\xAD'SQL语句:INSERT INTO
mabase.new_table(idnew_table,name)VALUES('2','')
我的数据库和表格是在utf8字符集和utf8_general_ci排序规则中.我也试过:utf8_unicode_ci,utf8mb4_general_ci,bg5_cinese_ci,gbk_cinese_ci.
我在Windows上的MySql工作台上尝试了所有这些.
是四字节字符.我只和他们有问题.请告诉我如何在mysql中保存四个字节的字符.
对不起,如果已经问过这个问题,我已经阅读了一些文章,但没有找到答案.
我的目标是创建具有唯一字段IMEI的实体设备,并且我想将其用作质量密钥,并在设备注册时指定它(在创建实体时指定manualy).我使用Spring roo工具进行开发,并将hibernate用作ORM.
当我在实体声明中指定它时:
@RooJavaBean
@RooToString
@RooJpaActiveRecord(identifierField = "IMEI", identifierType = String.class)
public class Device {...}
Run Code Online (Sandbox Code Playgroud)
我得到了这个.
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "IMEI")
private String Device.IMEI;
Run Code Online (Sandbox Code Playgroud)
使用mysql db将项目部署到服务器时出现此错误
2013-03-17 20:03:23,136 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - HHH000389: Unsuccessful: create table device (imei varchar(255) not null auto_increment, model varchar(255), name varchar(255) not null, version integer, primary key (imei))
2013-03-17 20:03:23,136 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Incorrect column specifier for column 'imei'
Run Code Online (Sandbox Code Playgroud)
然后我用.覆盖roo生成的字段
@Id
@GeneratedValue(generator = "org.hibernate.id.Assigned")
@Column(name = "the_code")
private String code;
Run Code Online (Sandbox Code Playgroud)
(我 …