我正在嘗試將 @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=?
如果我沒有group在宏量營養素上設定屬性,那么它會正確保存。請幫忙!
uj5u.com熱心網友回復:
一個可能的原因可能是“group”是一個保留字(想想“group by”運算式)。您可以嘗試一下:將列名括在反引號中
@Column(name="`group`")
private Group group;
在 JPA 2.0 中,語法有點不同:
@Column(name="\"group\"")
看看它效果更好。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/375994.html
