希望您一切都好,我有一个小问题,我一个人无法解决,我不会撒谎,就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类。
任何帮助将不胜感激。
答案 0 :(得分:3)
enum
字段的默认JPA映射是int
列(请参见EnumType.ORDINAL)。如果您的列是字符串,则需要使用EnumType.STRING。
尝试像这样注释enum
字段:
@Enumerated(EnumType.STRING)
@Column(name = "type", nullable = false)
private EnumTypeConformite type;