Can't get data from my table because of sql error java.sql.SQLException: Invalid value for getInt()?

TaouBen :

I hope you're doing fine, I am having a little problem That I could not solve alone, I won't lie, I am a begginer when it comes to Spring and Java in general.

I am having this little bug as the title mentioned, I am trying to get data from a table called tr_type_conformite, so I created a Java DAO class to get the data from that table:

@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();
   }

}

And here is my Entity :

@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;

}

And Here is my 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;
    }

}

But when I execute a service that call my DAO method, I get this big error :

Caused by: java.sql.SQLException: Invalid value for getInt() - 'T'

And of cource a big list of where my error came from, it is when I excute my service that call my DAO class.

Any Help would be much appreciated.

dmitrievanthony :

The default JPA mapping of enum field is int column (see EnumType.ORDINAL). If your column is string you need to use EnumType.STRING.

Try to annotate enum field like this:

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

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=94502&siteId=1