Не удается получить данные из моей таблицы из-за ошибки sql java.sql.SQLException: Неверное значение для getInt ()? - PullRequest
3 голосов
/ 09 апреля 2019

Надеюсь, у вас все хорошо, у меня небольшая проблема, которую я не могу решить в одиночку, я не буду лгать, я начинающий, когда речь идет о Spring и Java в целом.

У меня небольшая ошибка в названии, я пытаюсь получить данные из таблицы с именем 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;

}

А вот и моя 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;
    }

}

Но когда я выполняю службу, которая вызывает мой метод DAO, я получаю этобольшая ошибка:

Причина: java.sql.SQLException: Неверное значение для getInt () - 'T'

И, конечно, большой список, где моя ошибкаПришел, когда я извиняюсь за свою службу, позвонил в мой класс DAO.

Любая помощь будет очень признательна.

1 Ответ

3 голосов
/ 09 апреля 2019

Значение JPA по умолчанию для поля enum - столбец int (см. EnumType.ORDINAL ). Если ваш столбец является строкой, вам нужно использовать EnumType.STRING .

Попробуйте аннотировать enum поле следующим образом:

@Enumerated(EnumType.STRING)
@Column(name = "type", nullable = false)
private EnumTypeConformite type;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...