亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring JPA、Hibernate中哪個類負責掃描@Entity注解?

Spring JPA、Hibernate中哪個類負責掃描@Entity注解?

繁花不似錦 2023-07-28 09:54:21
我正在尋找一個負責掃描 JPA、Hibernate 或 Spring 中所有用@Entity注釋的類的類。我想擴展該類并在掃描該類時添加一些邏輯。我到處搜索(spring 文檔、JPA、Hibernate 文檔)但找不到它。
查看完整描述

3 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

一旦 Spring boot 檢測到您需要,JPA 存儲庫的自動配置就會啟用。
根據@JpaRepositoriesAutoConfiguration規范(重點是我的):

Spring Data 的 JPA 存儲庫的自動配置。當上下文中配置了 DataSource 類型的 bean、Spring Data JPA JpaRepository 類型位于類路徑上并且沒有配置其他現有 JpaRepository 時激活。一旦生效,自動配置相當于使用 EnableJpaRepositories 注釋啟用 JPA 存儲庫。該配置類將在 Hibernate 自動配置后激活。

要覆蓋它,請顯式添加@EnableJpaRepositories注釋,但除了注釋中定義的字段之外,您無法添加任何邏輯。


查看完整回答
反對 回復 2023-07-28
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

無法幫助你負責掃描的native類,但是可以告訴你如何在你自己的類中進行掃描。該代碼是從我的項目借用的 - 它可以公開每個實體的 id。您不必每次都向列表中添加新內容 - 很容易忘記這一步。您需要有一個擴展 RepositoryRestConfigurerAdapter 或 RepositoryRestMvcConfiguration 的配置,并添加一個方法,如下所示:


@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);

}

需要此依賴項:


<dependency>

    <groupId>net.sf.corn</groupId>

    <artifactId>corn-cps</artifactId>

    <version>1.0.1</version>

</dependency>


查看完整回答
反對 回復 2023-07-28
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

我認為這是一個非常廣泛的問題,但您需要查看源代碼才能理解。



查看完整回答
反對 回復 2023-07-28
  • 3 回答
  • 0 關注
  • 290 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號