Spring hibernate中的UUID映射

Spring hibernate中的UUID映射,spring,hibernate,spring-boot,mapping,uuid,Spring,Hibernate,Spring Boot,Mapping,Uuid,我已将一个表映射到我的表,并尝试在其中添加一些值。但我得到的错误如下 原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 近“创建、删除、读取、角色\u id、更新、id)值 ("二元"N"WlAs€“\niÊNÙ' 在1号线 我的实体是 角色设置.java @Entity @Table(name = "role_settings") @

我已将一个表映射到我的表,并尝试在其中添加一些值。但我得到的错误如下

原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 近“创建、删除、读取、角色\u id、更新、id)值 ("二元"N"WlAs€“\niÊNÙ' 在1号线

我的实体是

角色设置.java

@Entity @Table(name = "role_settings")
@Getter @Setter @Data
public class RoleSettings implements Serializable {

private static final long serialVersionUID = 8862104773442047690L;

@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
private UUID id;

@ManyToOne
@JoinColumn(name = "role_id", referencedColumnName = "id", foreignKey = @ForeignKey(name = "role_settings_iam_role_FK"))
private RoleMaster roleId;
}
@Entity @Table(name = "role")
@Getter @Setter @Data
public class RoleMaster implements Serializable {

private static final long serialVersionUID = 1792968151371176640L;

@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
private UUID id;

@Column(name = "name", nullable = false, length = 255)
private String name;
}
public interface RoleSettingsRepository extends JpaRepository<RoleSettings, UUID>{}
@Service
Class RoleSettingsService {
@Autowired
private RoleSettingsRepository roleSettingsRepository;
public BaseDTO create(RoleSettings roleSettings) {
    BaseDTO response = new BaseDTO();
    RoleSettings newRoleSettings = new RoleSettings();

    try {
        newRoleSettings.setRoleId(roleSettings.getRoleId());
        newRoleSettings.setAppAccessId(roleSettings.getAppAccessId());
        newRoleSettings.setCreate(roleSettings.getCreate());
        newRoleSettings.setUpdate(roleSettings.getUpdate());
        newRoleSettings.setRead(roleSettings.getRead());
        newRoleSettings.setDelete(roleSettings.getDelete());
        roleSettingsRepository.save(newRoleSettings);
        response.setStatusCode(200);
    } catch (Exception e) {
    }
    return response;
}
}
@RestController
@RequestMapping("/v1/rolesettings")
public class RoleSettingsController {

@Autowired
private RoleSettingsService roleSettingsService;

@PostMapping("/post")
public BaseDTO create(@RequestBody RoleSettings roleSettings) {
    BaseDTO response = roleSettingsService.create(roleSettings);
    return response;
}
}
RoleMaster.java

@Entity @Table(name = "role_settings")
@Getter @Setter @Data
public class RoleSettings implements Serializable {

private static final long serialVersionUID = 8862104773442047690L;

@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
private UUID id;

@ManyToOne
@JoinColumn(name = "role_id", referencedColumnName = "id", foreignKey = @ForeignKey(name = "role_settings_iam_role_FK"))
private RoleMaster roleId;
}
@Entity @Table(name = "role")
@Getter @Setter @Data
public class RoleMaster implements Serializable {

private static final long serialVersionUID = 1792968151371176640L;

@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
private UUID id;

@Column(name = "name", nullable = false, length = 255)
private String name;
}
public interface RoleSettingsRepository extends JpaRepository<RoleSettings, UUID>{}
@Service
Class RoleSettingsService {
@Autowired
private RoleSettingsRepository roleSettingsRepository;
public BaseDTO create(RoleSettings roleSettings) {
    BaseDTO response = new BaseDTO();
    RoleSettings newRoleSettings = new RoleSettings();

    try {
        newRoleSettings.setRoleId(roleSettings.getRoleId());
        newRoleSettings.setAppAccessId(roleSettings.getAppAccessId());
        newRoleSettings.setCreate(roleSettings.getCreate());
        newRoleSettings.setUpdate(roleSettings.getUpdate());
        newRoleSettings.setRead(roleSettings.getRead());
        newRoleSettings.setDelete(roleSettings.getDelete());
        roleSettingsRepository.save(newRoleSettings);
        response.setStatusCode(200);
    } catch (Exception e) {
    }
    return response;
}
}
@RestController
@RequestMapping("/v1/rolesettings")
public class RoleSettingsController {

@Autowired
private RoleSettingsService roleSettingsService;

@PostMapping("/post")
public BaseDTO create(@RequestBody RoleSettings roleSettings) {
    BaseDTO response = roleSettingsService.create(roleSettings);
    return response;
}
}
RoleSettingsRepository.java

@Entity @Table(name = "role_settings")
@Getter @Setter @Data
public class RoleSettings implements Serializable {

private static final long serialVersionUID = 8862104773442047690L;

@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
private UUID id;

@ManyToOne
@JoinColumn(name = "role_id", referencedColumnName = "id", foreignKey = @ForeignKey(name = "role_settings_iam_role_FK"))
private RoleMaster roleId;
}
@Entity @Table(name = "role")
@Getter @Setter @Data
public class RoleMaster implements Serializable {

private static final long serialVersionUID = 1792968151371176640L;

@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
private UUID id;

@Column(name = "name", nullable = false, length = 255)
private String name;
}
public interface RoleSettingsRepository extends JpaRepository<RoleSettings, UUID>{}
@Service
Class RoleSettingsService {
@Autowired
private RoleSettingsRepository roleSettingsRepository;
public BaseDTO create(RoleSettings roleSettings) {
    BaseDTO response = new BaseDTO();
    RoleSettings newRoleSettings = new RoleSettings();

    try {
        newRoleSettings.setRoleId(roleSettings.getRoleId());
        newRoleSettings.setAppAccessId(roleSettings.getAppAccessId());
        newRoleSettings.setCreate(roleSettings.getCreate());
        newRoleSettings.setUpdate(roleSettings.getUpdate());
        newRoleSettings.setRead(roleSettings.getRead());
        newRoleSettings.setDelete(roleSettings.getDelete());
        roleSettingsRepository.save(newRoleSettings);
        response.setStatusCode(200);
    } catch (Exception e) {
    }
    return response;
}
}
@RestController
@RequestMapping("/v1/rolesettings")
public class RoleSettingsController {

@Autowired
private RoleSettingsService roleSettingsService;

@PostMapping("/post")
public BaseDTO create(@RequestBody RoleSettings roleSettings) {
    BaseDTO response = roleSettingsService.create(roleSettings);
    return response;
}
}
RoleSettingsController.java

@Entity @Table(name = "role_settings")
@Getter @Setter @Data
public class RoleSettings implements Serializable {

private static final long serialVersionUID = 8862104773442047690L;

@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
private UUID id;

@ManyToOne
@JoinColumn(name = "role_id", referencedColumnName = "id", foreignKey = @ForeignKey(name = "role_settings_iam_role_FK"))
private RoleMaster roleId;
}
@Entity @Table(name = "role")
@Getter @Setter @Data
public class RoleMaster implements Serializable {

private static final long serialVersionUID = 1792968151371176640L;

@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
private UUID id;

@Column(name = "name", nullable = false, length = 255)
private String name;
}
public interface RoleSettingsRepository extends JpaRepository<RoleSettings, UUID>{}
@Service
Class RoleSettingsService {
@Autowired
private RoleSettingsRepository roleSettingsRepository;
public BaseDTO create(RoleSettings roleSettings) {
    BaseDTO response = new BaseDTO();
    RoleSettings newRoleSettings = new RoleSettings();

    try {
        newRoleSettings.setRoleId(roleSettings.getRoleId());
        newRoleSettings.setAppAccessId(roleSettings.getAppAccessId());
        newRoleSettings.setCreate(roleSettings.getCreate());
        newRoleSettings.setUpdate(roleSettings.getUpdate());
        newRoleSettings.setRead(roleSettings.getRead());
        newRoleSettings.setDelete(roleSettings.getDelete());
        roleSettingsRepository.save(newRoleSettings);
        response.setStatusCode(200);
    } catch (Exception e) {
    }
    return response;
}
}
@RestController
@RequestMapping("/v1/rolesettings")
public class RoleSettingsController {

@Autowired
private RoleSettingsService roleSettingsService;

@PostMapping("/post")
public BaseDTO create(@RequestBody RoleSettings roleSettings) {
    BaseDTO response = roleSettingsService.create(roleSettings);
    return response;
}
}
我的json对象

{ "roleId" :{"id":  "b2e64c82-ab75-41d3-bb10-e9150f314807"} }

“我的角色id”作为类型二进制(16)存储在数据库中。

请检入
id
列的数据库数据类型。它必须是
binary(16)
。并将实体字段注释为:

@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
@Column(columnDefinition = "BINARY(16)")
private UUID id;

请注意,在这种情况下,您需要添加列定义。

尝试将
@column(columnDefinition=“BINARY(16)”)
添加到
id
字段和默认字符集UTF-8@benjamin-c尝试了这两种方法,但仍然得到相同的错误。尝试了它,仍然得到与以前相同的错误。