Spring Data Rest: было отказано в разрешении INSERT для второго источника данных - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть два источника данных, определенных в файле Applicaton.yml для приложения с весенней загрузкой:

 application.yml:

 spring:
      datasource:
          jdbcUrl: jdbc:sqlserver://db_server_url;integratedSecurity=false;databaseName=DB1
          username: user1
          password: pwd1
      datasource2:
          jdbcUrl: jdbc:sqlserver://db_server_url;integratedSecurity=false;databaseName=DB2
          username: user2
          password: pwd2

Бины для настройки этих двух источников данных:

@Configuration
public class DatasourceConfigure {

    @Bean
    @Primary
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource1() {
        return DataSourceBuilder.create().build();
    }

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource2")
    public DataSource dataSource2() {
        return DataSourceBuilder.create().build();
    }
 }

У меня есть одна таблица в каждом источнике данных. Я определил сущность и файл репозитория java для каждой таблицы. У меня нет проблем с выполнением операций CRUD из Postman для таблицы в первом источнике данных. Однако я получил "The INSERT permission was denied on the object 'CAR'", когда пытался выполнить POST для создания записи автомобиля во втором источнике данных (datasource2) через репозиторий (POST: http://localhost:8080/myapp/cars). Я смог сделать GET http://localhost:8080/myapp/cars. Может кто-нибудь, пожалуйста, сообщите мне, почему я получаю разрешение на INSERT / UPDATE для второго источника данных?

Файл Entity java для таблицы, определенной во втором источнике данных - datasource2:

@Data
@Entity
@Table(name = "CAR", schema = "mySchema", catalog = "DB2")
public class Car {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "ID")
    private Integer id; // PK

    @Column(name = "NAME")
    private String name;
}

Репозиторий java Файл:

@RepositoryRestResource(collectionResourceRel = "cars", path = "cars")
public interface CarRepository extends PagingAndSortingRepository<Car, Integer> {

    @RestResource(path = "byid") // PK
    Car findById(@Param("id") int id);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...