我收到这个错误:
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect integer value: 'ANTIQUES Value 1' for column 'category' at row 1
从 selectOneMenu 中选择一个值并尝试将实体保存到数据库中; selectOneMenu 由 SelectItemGroup 填充:
private List<SelectItem> options = new ArrayList<SelectItem>();
public CategoryBean()
{
SelectItemGroup group1 = new SelectItemGroup("ANTIQUES");
group1.setSelectItems(new SelectItem[] {
new SelectItem("ANTIQUES Value 1", "European Antiques"),
new SelectItem("ANTIQUES Value 1", "Asian Antiques"),
new SelectItem("ANTIQUES Value 2", "Furniture"),
new SelectItem("ANTIQUES Value 3", "Books and Manuscripts"),
new SelectItem("ANTIQUES Value 3", "Architecture")
});
options.add(group1);
SelectItemGroup group2 = new SelectItemGroup("ART");
group2.setSelectItems(new SelectItem[] {
new SelectItem("ART Value 1", "PAINTINGS"),
new SelectItem("ART Value 4", "HANDMADE ART"),
new SelectItem("ART Value 5", "PHOTOS")
});
options.add(group2);
..
并且选择的值作为字符串存储在实体表中
有什么想法吗? 提前致谢!
最佳答案
查看 @Entity
bean 和表定义(尤其是 category
列)。
根据您的日志,似乎 category
在实体 bean 中定义为 String
,但在表中定义为 integer
。
因此,要么像 varchar
这样定义表列,要么在像 int
这样的 bean 中定义字段 category
并为菜单项正确的类。
关于mysql - javax.ejb.EJBException : javax. persistence.PersistenceException : org. hibernate.exception.DataException: 无法执行语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44068762/