【发布时间】:2022-01-12 16:52:20
【问题描述】:
我正在尝试将@Enumerated 值保存到数据库中:
@Entity
public class Macronutrient {
public enum Group {
CARBOHYDRATE, PROTEIN, FAT
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Size(min = 3, max = 255)
@NotBlank
@Column(unique = true)
private String name;
@Enumerated(EnumType.STRING)
private Group group;
//getters and setters
}
我正在发送 PATCH 请求以修改现有的宏量营养素:
PATCH /macronutrients
{
"id": 1,
"name": "Macronutrient",
"group": "CARBOHYDRATE"
}
负责处理更新的代码:
public Macronutrient patchMacronutrient(Macronutrient macronutrient) {
...
if (Objects.nonNull(macronutrient.getGroup())) {
existingMacronutrient.setGroup(macronutrient.getGroup());
}
...
}
我得到的回应: 错误:“组”或附近的语法错误
Hibernate:
update
public.macronutrient
set
group=?,
name=? where
id=?
如果我没有在 Macronutrient 上设置 group 属性,那么它会正确保存。
请帮忙!
【问题讨论】:
-
数据库中是否存在
group列? -
group 是 mysql 中的保留关键字,建议命名为 nutrientGroup 之类的
标签: java spring jpa spring-data-jpa