3 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
一旦 Spring boot 檢測(cè)到您需要,JPA 存儲(chǔ)庫(kù)的自動(dòng)配置就會(huì)啟用。
根據(jù)@JpaRepositoriesAutoConfiguration
規(guī)范(重點(diǎn)是我的):
Spring Data 的 JPA 存儲(chǔ)庫(kù)的自動(dòng)配置。當(dāng)上下文中配置了 DataSource 類型的 bean、Spring Data JPA JpaRepository 類型位于類路徑上并且沒(méi)有配置其他現(xiàn)有 JpaRepository 時(shí)激活。一旦生效,自動(dòng)配置相當(dāng)于使用 EnableJpaRepositories 注釋啟用 JPA 存儲(chǔ)庫(kù)。該配置類將在 Hibernate 自動(dòng)配置后激活。
要覆蓋它,請(qǐng)顯式添加@EnableJpaRepositories
注釋,但除了注釋中定義的字段之外,您無(wú)法添加任何邏輯。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
無(wú)法幫助你負(fù)責(zé)掃描的native類,但是可以告訴你如何在你自己的類中進(jìn)行掃描。該代碼是從我的項(xiàng)目借用的 - 它可以公開(kāi)每個(gè)實(shí)體的 id。您不必每次都向列表中添加新內(nèi)容 - 很容易忘記這一步。您需要有一個(gè)擴(kuò)展 RepositoryRestConfigurerAdapter 或 RepositoryRestMvcConfiguration 的配置,并添加一個(gè)方法,如下所示:
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
// getting a list of all classes annotated with @Entity
List<Class<?>> classes = CPScanner.scanClasses(new PackageNameFilter("ru.outofrange.*"),
new ClassFilter().appendAnnotation(Entity.class));
Class[] arrayClasses = new Class[classes.size()];
for (int i = 0; i < classes.size(); i++) {
arrayClasses[i] = classes.get(i);
}
config.exposeIdsFor(arrayClasses);
}
需要此依賴項(xiàng):
<dependency>
<groupId>net.sf.corn</groupId>
<artifactId>corn-cps</artifactId>
<version>1.0.1</version>
</dependency>
添加回答
舉報(bào)