данные пружины и ORA-00942: таблица или представление не существует - PullRequest
0 голосов
/ 15 сентября 2018

У меня странные проблемы с Spring Data и базой данных Oracle 12

Я получил

java.sql.SQLSyntaxErrorException:
ORA-00942 : таблица или представление не есть

но это работает, когда я использую JdbcTemplate! Данные Spring и JdbcTemplate используют один и тот же источник данных. Миграции Liquibase также работают без проблем

Я пытался использовать схему для моделей, но безуспешно.

@Getter
@Setter
@Entity
@Table(name = "tb_accounts", schema = "rx")
public class CustomerAccount {

   @Id
   @Column(name = "id")
   private String id;

   private String accountNo;
}

@Repository
public interface CustomerAccountRepository extends JpaRepository<CustomerAccount, String> {

}

Но, как я уже сказал, он работает с JdbcTemplate

@Repository
public class CustomerAccountDao {

    @Autowired
    private DataSource dataSource;

    private JdbcTemplate jdbcTemplate;

    @PostConstruct
    private void postConstruct() {
        jdbcTemplate = new JdbcTemplate(dataSource);
    }

    public List<CustomerAccount> findAll() {
    return jdbcTemplate.query("select * from tb_accounts", (rs, i) -> {

        CustomerAccount account = new CustomerAccount();
        account.setId(rs.getString("id"));

        return account;
    });
}

Файл миграции

<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd">

    <changeSet id="1" author="user1">
        <createTable tableName="tb_accounts">
            <column name="id" type="VARCHAR(256)">
                <constraints primaryKey="true"/>
            </column>
            <column name="accountNo" type="VARCHAR(256)"/>

        </createTable>

    </changeSet>

</databaseChangeLog>

Есть идеи? Что я должен проверить? Я потратил часы, чтобы найти причину, но ничего не помогло :(

1 Ответ

0 голосов
/ 16 сентября 2018

Нужно использовать TB_ACCOUNTS вместо tb_accounts ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...