У меня есть загрузочное приложение Spring (2.1.5), использующее Hibernate (5.1) в качестве моего JPA-провайдера, обращающегося к БД Oracle 11.2.0.4 с помощью Hibernate Dialect Oracle10gDialect
Я создал подобное репо
@Repository
public interface VehStoRepository extends CrudRepository<VehStoEntity, Long>
{
}
и моя сущность выглядит следующим образом
@Entity @Table(name = "VEH_STO", schema = "MySchema")
public class VehStoEntity
{
@Id
private long eventNo;
private Long stoType;
Basic @Column(name = "STO_TYPE", nullable = true, precision = 0)
public Long getStoType()
{
return stoType;
}
public void setStoType(Long stoType)
{
this.stoType = stoType;
}
...
}
Со многими другими полями и т. Д., Которые я исключил для краткости.У меня было отображение постоянства, сгенерированное Intellj Idea.
Теперь при вызове vehStoRepository.findAll();
я получаю следующую ошибку:
Причина: org.springframework.dao.InvalidDataAccessResourceUsageException: не удалось извлечь ResultSet;SQL [н / п];вложенным исключением является org.hibernate.exception.SQLGrammarException: не удалось извлечь ResultSet
...
Причина: java.sql.SQLSyntaxErrorException: ORA-00904: "VEHSTOENT0 _". "STOTYPE": недопустимый идентификатор
Мой оператор SQL в журналах показывает:
Hibernate: выберите vehstoent0_.stoType в качестве stoType25_0_ из MYSCHEMA.VEH_STO vehstoent0_
Мой вопрос: действительно ли hibernate добавляет ent0 к имени сущности, или это просто странная запись в журнал, или это является причиной ошибки?Это потому, что я не создал схему сопоставления ORM для всех таблиц, только для той, которая мне нужна?Что я делаю не так?