mysql - javax.ejb.EJBException : javax. persistence.PersistenceException : org. hibernate.exception.DataException: 无法执行语句

标签 mysql jpa

我收到这个错误:

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/

相关文章:

mysql - 你如何构建一个允许投票的数据库,类似于 stackoverflow 的做法?

mysql - SQL 中分组属性的不同值

jpa - Spring Data + JPA的过滤器

java - 具有聚合内连接的 JPA Criteria 查询

Python/MySqlDB - 使用 raw_input 查询数据库并打印结果

mysql - 使用 MySQL 工作台

java - Spring Data - 页面请求 - 按功能排序

java - 如果找不到实体,则为 JPA 默认值

java - JPA 2.0 在刷新操作时从映射父类(super class)继承空字段

php - 旧的 SQL 数据库 - 尝试存储带有空格文本的字符串