由于sql错误java.sql.SQLException而无法从表中获取数据:getInt()的值无效?

时间:2019-04-09 14:49:50

标签: java spring-boot

希望您一切都好,我有一个小问题,我一个人无法解决,我不会撒谎,就Spring和Java而言,我是一个乞gg。

我的标题中有一个小错误,我试图从名为tr_type_conformite的表中获取数据,所以我创建了一个Java DAO类来从该表中获取数据:

@Repository
public class ConformiteDaoImpl extends AbstractDaoImpl<Object, Long> implements ConformiteDao {

   @Autowired
   private ConfirmiteContratDaoJPA conformiteDaoJPA;

   @SuppressWarnings({ "unchecked", "rawtypes" })
   @Override
   public CrudRepository getCrudRepositoryImpl() {
      // TODO Auto-generated method stub
      return null;
   }

   @Override
   public List<TrTypeConformite> recupererListeConformitePourContrat() {
      // TODO Auto-generated method stub
      return getJPAQueryFactory().selectFrom(QTrTypeConformite.trTypeConformite).fetch();
   }

}

这是我的实体:

@Entity
@Table(name = "tr_type_conformite")
@Getter @Setter
public class TrTypeConformite extends AbstractTrEntity {

    private static final long serialVersionUID = 1L;

    @Column(name = "code", nullable = false, length=11)
    private String code;

    @Column(name = "type", nullable = false)
    private EnumTypeConformite type;

    @Column(name = "ordre", nullable = false, length=11)
    private int ordre;

}

这是我的枚举:

public enum EnumTypeConformite {

    VIGIL("VIGIL"),
    PPE("PPE"),
    T("T");

    private String value;

    private EnumTypeConformite(String value) {
        this.value = value;
    }

    public String getValue(){
        return value;
    }

}

但是当我执行调用我的DAO方法的服务时,会出现这个大错误:

  

原因:java.sql.SQLException:getInt()-'T'的值无效

当然,在我的错误来源的清单中,有很多是我执行服务时调用的DAO类。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

enum字段的默认JPA映射是int列(请参见EnumType.ORDINAL)。如果您的列是字符串,则需要使用EnumType.STRING

尝试像这样注释enum字段:

@Enumerated(EnumType.STRING)
@Column(name = "type", nullable = false)
private EnumTypeConformite type;