Я надеюсь, у вас все хорошо, у меня есть небольшая проблема, которую я не мог решить в одиночку, я не буду лгать, я новичок, когда дело доходит до 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, я получаю эту большую ошибку:
Caused by: java.sql.SQLException: Invalid value for getInt() - 'T'
И, конечно же, большой список того, откуда возникла моя ошибка, это когда я запускаю свою службу, которая вызывает мой класс DAO.
Любая помощь приветствуется.
Не должно быть: private String ordre;
?
@SteveSmith Мои определения Comlumns? имея в виду ?
Какие типы столбцов, например. varchar, int и т.д...
@juanlumn Нет, я так не думаю, я думаю, это из-за Моего перечисления, но я не знаю, как решить проблему.
@SteveSmith Ну, код - это varchar, тип - это varchar, а ordre - это целое число.
Я думаю, вам нужно аннотировать столбец типа с помощью @Enumerated, может быть, @Enumerated(EnumType.String)
.
@SteveSmith, я проверю и посмотрю, спасибо, сэр.
@SteveSmith Вы правы, можете ли вы написать этот ответ, чтобы я мог пометить его как правильный.
dmitrievanthony уже есть, поэтому вы можете отметить их как правильные. Спасибо.
ты просто был первым, спасибо
JPA-сопоставление поля enum
по умолчанию — это столбец int
(см. EnumType.ORDINAL). Если ваш столбец является строкой, вам нужно использовать EnumType.STRING.
Попробуйте аннотировать поле enum
следующим образом:
@Enumerated(EnumType.STRING)
@Column(name = "type", nullable = false)
private EnumTypeConformite type;
Каковы определения столбцов в БД?