J'espère que vous faites bien, j'ai un petit problème que je ne pouvais pas résoudre seul, je ne vais pas mentir, je suis un débutant en matière de printemps et Java en général.
J'ai ce petit bug comme le titre mentionné, je suis en train d'obtenir des données d'une table appelée tr_type_conformite
, donc je créé une classe Java DAO pour obtenir les données de ce tableau:
@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();
}
}
Et voici mon entité:
@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;
}
Et voici mon Enum:
public enum EnumTypeConformite {
VIGIL("VIGIL"),
PPE("PPE"),
T("T");
private String value;
private EnumTypeConformite(String value) {
this.value = value;
}
public String getValue(){
return value;
}
}
Mais quand j'exécute un service qui appelle ma méthode DAO, je reçois cette grande erreur:
Causés par: java.sql.SQLException: valeur non valide pour getInt () - 'T'
Et Evidement, une grande liste d'où mon erreur est venu, il est quand j'excute mon service appeler ma classe de DAO.
Toute aide serait très appréciée.
La valeur par défaut cartographie JPA de enum
champ est la int
colonne (voir EnumType.ORDINAL ). Si votre colonne est une chaîne , vous devez utiliser EnumType.STRING .
Essayez d'annoter enum
domaine comme celui - ci:
@Enumerated(EnumType.STRING)
@Column(name = "type", nullable = false)
private EnumTypeConformite type;