Spring Data JPA-「タイプのプロパティが見つかりません」例外


126

さて、私はグーグルを検索して多くの結果を見つけましたが、どれも私の問題に答えることができませんでした。だから、ここに行きます。

私はpinterest cloneの最小限の実装を行うことでSpring MVCとSpring Data JPAを研究しようとしています。だから、以下は私の問題に関連すると私が思うコードの部分です。

モデル/エンティティ

@Entity
@Table(name = "pin_item")
public class PinItem implements Serializable {
    // properties ...
    @JoinColumn(name = "board_id", referencedColumnName = "user_board_id")
    @ManyToOne(optional = false)
    private UserBoard board;

    // getters and setters...
}

@Entity
@Table(name = "user_board")
public class UserBoard implements Serializable {
    // properties ...
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "board")
    private List<PinItem> pinItemList;

    // getters and setters...
}

サービス

@Service
@Transactional(readOnly = true)
public class BoardServiceImpl implements BoardService {
    @Autowired
    private UserBoardRepository boardRepository;

    @Override
    public List<UserBoard> findLatestBoards() {
        PageRequest request = new PageRequest(
                     0, PresentationUtil.PAGE_SIZE, 
                     Sort.Direction.DESC, "boardId"
        );
        return boardRepository.findAll(request).getContent();
    }

    // Other Methods
}

リポジトリ

public interface UserBoardRepository extends JpaRepository<UserBoard, Integer> {

}

次に、でfindLatestBoardsメソッドを呼び出すとBoardService、行に「プロパティが見つかりません」という例外がスローされreturn boardRepository.findAll(request).getContent();ます。これは、tomcatログからの抜粋です。

デバッグログ

12:28:44,254 DEBUG AnnotationTransactionAttributeSource:106 - Adding transactional method 'findLatestBoards' with attribute: PROPAGATION_REQUIRED,ISOLATION_DEFAULT,readOnly; ''
12:28:44,254 DEBUG DefaultListableBeanFactory:246 - Returning cached instance of singleton bean 'transactionManager'
12:28:44,254 DEBUG JpaTransactionManager:366 - Creating new transaction with name [com.tecnooc.picpin.service.impl.BoardServiceImpl.findLatestBoards]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT,readOnly; ''
12:28:44,254 DEBUG JpaTransactionManager:369 - Opened new EntityManager [org.hibernate.ejb.EntityManagerImpl@75284194] for JPA transaction
12:28:44,255 DEBUG AbstractTransactionImpl:158 - begin
12:28:44,255 DEBUG LogicalConnectionImpl:212 - Obtaining JDBC connection
12:28:44,255 DEBUG DriverManagerDataSource:162 - Creating new JDBC DriverManager Connection to [jdbc:mysql://localhost:3306/pic_pin]
12:28:44,266 DEBUG LogicalConnectionImpl:218 - Obtained JDBC connection
12:28:44,267 DEBUG JdbcTransaction:69 - initial autocommit status: true
12:28:44,267 DEBUG JdbcTransaction:71 - disabling autocommit
12:28:44,267 DEBUG JpaTransactionManager:401 - Exposing JPA transaction as JDBC transaction [org.springframework.orm.jpa.vendor.HibernateJpaDialect$HibernateConnectionHandle@370da60e]
12:28:44,274 DEBUG TransactionalRepositoryProxyPostProcessor$CustomAnnotationTransactionAttributeSource:286 - Adding transactional method 'findAll' with attribute: PROPAGATION_REQUIRED,ISOLATION_DEFAULT,readOnly; ''
12:28:44,274 DEBUG DefaultListableBeanFactory:246 - Returning cached instance of singleton bean 'transactionManager'
12:28:44,274 DEBUG JpaTransactionManager:332 - Found thread-bound EntityManager [org.hibernate.ejb.EntityManagerImpl@75284194] for JPA transaction
12:28:44,274 DEBUG JpaTransactionManager:471 - Participating in existing transaction
12:28:44,279 DEBUG CachedIntrospectionResults:159 - Not strongly caching class [java.io.Serializable] because it is not cache-safe
12:28:44,281 DEBUG JpaTransactionManager:851 - Participating transaction failed - marking existing transaction as rollback-only
12:28:44,281 DEBUG JpaTransactionManager:559 - Setting JPA transaction on EntityManager [org.hibernate.ejb.EntityManagerImpl@75284194] rollback-only
12:28:44,283 DEBUG JpaTransactionManager:844 - Initiating transaction rollback
12:28:44,284 DEBUG JpaTransactionManager:534 - Rolling back JPA transaction on EntityManager [org.hibernate.ejb.EntityManagerImpl@75284194]
12:28:44,284 DEBUG AbstractTransactionImpl:203 - rolling back
12:28:44,284 DEBUG JdbcTransaction:164 - rolled JDBC Connection
12:28:44,285 DEBUG JdbcTransaction:126 - re-enabling autocommit
12:28:44,285 DEBUG JpaTransactionManager:594 - Closing JPA EntityManager [org.hibernate.ejb.EntityManagerImpl@75284194] after transaction
12:28:44,285 DEBUG EntityManagerFactoryUtils:338 - Closing JPA EntityManager
12:28:44,286 DEBUG LogicalConnectionImpl:232 - Releasing JDBC connection
12:28:44,286 DEBUG LogicalConnectionImpl:250 - Released JDBC connection
12:28:44,287 DEBUG ExceptionHandlerExceptionResolver:132 - Resolving exception from handler [public java.lang.String com.tecnooc.picpin.controller.BoardController.latest(javax.servlet.http.HttpSession,org.springframework.ui.Model)]: org.springframework.data.mapping.PropertyReferenceException: No property board found for type com.tecnooc.picpin.model.UserBoard
12:28:44,289 DEBUG ResponseStatusExceptionResolver:132 - Resolving exception from handler [public java.lang.String com.tecnooc.picpin.controller.BoardController.latest(javax.servlet.http.HttpSession,org.springframework.ui.Model)]: org.springframework.data.mapping.PropertyReferenceException: No property board found for type com.tecnooc.picpin.model.UserBoard
12:28:44,290 DEBUG DefaultHandlerExceptionResolver:132 - Resolving exception from handler [public java.lang.String com.tecnooc.picpin.controller.BoardController.latest(javax.servlet.http.HttpSession,org.springframework.ui.Model)]: org.springframework.data.mapping.PropertyReferenceException: No property board found for type com.tecnooc.picpin.model.UserBoard
12:28:44,291 DEBUG DispatcherServlet:959 - Could not complete request

例外

例外は「org.springframework.data.mapping.PropertyReferenceException: No property board found for type com.tecnooc.picpin.model.UserBoard」です。しかし、私が正しく理解した場合、プロパティboardはに存在しPinItem、で正しくマッピングさmappedBy = "board"UserBoardます。

org.springframework.data.mapping.PropertyReferenceException: No property board found for type com.tecnooc.picpin.model.UserBoard
    at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:75)
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:327)
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:353)
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:307)
    at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:271)
    at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:245)
    at org.springframework.data.jpa.repository.query.QueryUtils.toJpaOrder(QueryUtils.java:408)
    at org.springframework.data.jpa.repository.query.QueryUtils.toOrders(QueryUtils.java:372)
    at org.springframework.data.jpa.repository.support.SimpleJpaRepository.getQuery(SimpleJpaRepository.java:456)
    at org.springframework.data.jpa.repository.support.SimpleJpaRepository.getQuery(SimpleJpaRepository.java:437)
    at org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll(SimpleJpaRepository.java:319)
    at org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll(SimpleJpaRepository.java:289)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:333)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:318)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.data.jpa.repository.support.LockModeRepositoryPostProcessor$LockModePopulatingMethodIntercceptor.invoke(LockModeRepositoryPostProcessor.java:92)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at com.sun.proxy.$Proxy147.findAll(Unknown Source)
    at com.tecnooc.picpin.service.impl.BoardServiceImpl.findLatestBoards(BoardServiceImpl.java:45)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at com.sun.proxy.$Proxy148.findLatestBoards(Unknown Source)
    at com.tecnooc.picpin.controller.BoardController.latest(BoardController.java:31)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)

この例外がスローされる理由がわかりません。なぜそれが起こっているのですか?

注:永続プロバイダーとしてHibernateを使用しています。また、ここに記述したコード部分は、問題に関連すると思ったものです。そうでない場合は、お知らせください。必要な部分で質問を更新します。


2
埋め込みIDにMyCompositePKと名前を付けてfindByMyCompositePKUserId(Long userId)と書いてみたところ、同じ問題が発生しました。ポイントは、メソッドからクエリを作成するときにテーブルプロパティを区別するために、CRUDリポジトリでもキャメルケースにする必要があることです。したがって、それはMyCompositePkおよびfindByMyCompositePkUserId(Long userId)である必要があります
EmeraldTablet

回答:


138

私はこれと同じ問題に遭遇し、ここで解決策を見つけました:https : //dzone.com/articles/persistence-layer-spring-data

エンティティプロパティの名前を変更しました。ただし、Springsの自動カスタムクエリでは、古いプロパティ名に対して定義されたインターフェイスがありました。

public interface IFooDAO extends JpaRepository< Foo, Long >{
     Foo findByOldPropName( final String name );
}

エラーは、 "OldPropName"を検出できなくなったことを示し、例外をスローしました。

DZoneの記事を引用するには:

Spring Dataが新しいリポジトリ実装を作成すると、インターフェースによって定義されたすべてのメソッドを分析し、メソッド名からクエリを自動的に生成しようとします。これには制限がありますが、ほとんど手間をかけずに新しいカスタムアクセスメソッドを定義する非常に強力でエレガントな方法です。たとえば、管理対象エンティティに名前フィールド(およびそのフィールドのJava Bean標準ゲッターとセッター)がある場合、DAOインターフェースでfindByNameメソッドを定義すると、正しいクエリが自動的に生成されます。

public interface IFooDAO extends JpaRepository< Foo, Long >{
     Foo findByName( final String name );
}

これは比較的単純な例です。クエリ作成メカニズムにより、はるかに大きなキーワードセットがサポートされます。

パーサーがプロパティをドメインオブジェクトフィールドと照合できない場合、次の例外がスローされます。

java.lang.IllegalArgumentException: No property nam found for type class org.rest.model.Foo

86

あなたの名前は正しくありません

ドキュメントに従って、リポジトリがUserBoardRepositoryである場合、カスタムリポジトリの実装はという名前にする必要がありますUserBoardRepositoryImpl。ここではと名前を付けているBoardServiceImplため、例外がスローされます。


1
私の知る限り-さらに、すべてのリポジトリのクラス/インタフェースは、一つのディレクトリに配置する必要があります
BłażejKocik

6
なぜこれがそれほど賛成されているのかはわかりませんが、この質問に関係するカスタムリポジトリはありません。BoardServiceImplはを使用した単なるサービスUserBoardRepositoryです。
Didier L

それは私のケースです!Implクラスを完全に別のパッケージに移動する前は問題ありませんでしたが、その後これが起こりました。ありがとう
Buckstabue

これは私の日を救った!
letimome

46

修正済み、CrudRepositorySpringの使用中、findByの後にプロパティ名を正しく追加する必要があります。そうしないと、例外として「タイプのプロパティが見つかりません」という例外が発生します

私はこの例外を得ていました。プロパティ名とメソッド名が同期していないためです。

以下のコードをDB Accessに使用しました。

public interface UserDao extends CrudRepository<User, Long> {
    User findByUsername(String username);

私のドメインユーザーにはプロパティがあります。

@Entity
public class User implements UserDetails {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "userId", nullable = false, updatable = false)
    private Long userId;
    private String username;

1
このアプローチは私に役立ちました-リポジトリの「デフォルト」(CrudRepositoryインターフェースによって提供される)メソッド(つまり、findByDateOfStatisticsBetween()のinsteaでfindByDateBetween()メソッドの名前を使用)でクラスのプロパティの誤った名前を使用しました
ryzhman

1
findStatusId間違った例findByStatusIdと複数のネーミングチェックの例stackoverflow.com/a/32796493/944593
shareef

時間を大幅に節約できました。ありがとうございました :)。
Joey587

27

JPAリポジトリ名はUserBoardRepositoryであるため、カスタムインターフェイス名はUserBoardRepositoryCustom(「Custom」で終わる必要があります)と実装クラス名はUserBoardRepositoryImpl(Implで終わる必要があります。リポジトリを使用して別のポストフィックスで設定できます) impl-postfixプロパティ)


17

このエラーは、存在しないプロパティにアクセスしようとすると発生します

私の推測では、ソートは春property nameではなくによって行われreal column nameます。エラーは、"UserBoard"という名前のプロパティがないことを示しています"boardId"

ベスト、

オーク


ありがとうございました。Springがまったく別の問題について不満を言っていたため、この解決策を見つけるのにしばらく時間がかかりました。クラスAと、B拡張Aしてプロパティを持つクラスがありますx。それはxクラスでプロパティを見つけることができなかったと不平を言っていましたA...
GuiRitter

9

私の場合、メソッド名にタイプミス(キャメルケース)がありました。「findbyLastName」という名前にし、この例外に直面しました。「findByLastName」に変更した後、例外がなくなりました。


1
自分への注意:再確認してください!:-)
lilalinux

8

ここで注意してください:Zane XYとAlan B. Deeからの答えはかなり良いです。しかし、今すぐSpring BootとSpring Dataを使用する方のために、より現代的な答えを示します。

次のようなクラスがあるとします。

@Entity
class MyClass {
    @Id
    @GeneratedValue
    private Long id;

    private String myClassName;
}

これのa JpaRepositoryは次のようになります

interface MyClassRepository extends JpaRepository {
    Collection<MyClass> findByMyClassName(String myClassName);
}

Springはこのメソッドをプロパティにマップするためのメカニズムを備えている必要があるため、「カスタム」メソッドによる検索はCollection<MyClass> findByMyClassName(String myClassName)正確にスペルする必要がありMyClassますmyClassName

、私には、ために自然に思えたので、私はこのアウトを考え出し、その名前でクラスを見つける 意味的に実際には、一方で、synatxicallyあなたはmyClassNameで見つけます

乾杯


2

カスタムJpaRepositoryメソッド名がエンティティクラスのどの変数とも一致しないようです。メソッド名がエンティティクラスの変数と一致することを確認してください

たとえば、「active」という変数名を取得し、カスタムJpaRepositoryメソッドが「findByActiveStatus」と言っている場合、「activeStatus」という変数がないため、「PropertyReferenceException」がスローされます。



0

JPAでは関係には単一の所有者がいて、クラスでを使用mappedByして、UserBoardそれPinItemがその双方向関係の所有者でPinItemあり、関係のプロパティに名前が付けられていることを伝えますboard

あなたにはUserBoard、クラスは、名前を持つすべてのフィールド/プロパティを持っていないboardが、それは財産を持っているpinItemListあなたが代わりにそのプロパティを使用しようとするかもしれないので、。


0

プロジェクトでSpring-Bootを使用している場合は、Application.javaでこのアノテーションを追加してみてください。

@EnableJpaRepositories(repositoryFactoryBeanClass=CustomRepositoryFactoryBean.class)
@SpringBootApplication

public class Application {.....

0

このような使用ページを受け取る必要があります

 @Override
public Page<UserBoard> findLatestBoards() {
    PageRequest request = new PageRequest(
                 0, PresentationUtil.PAGE_SIZE, 
                 Sort.Direction.DESC, "boardId"
    );
    return boardRepository.findAll(request).getContent();
}


0

私には数時間の頭痛を引き起こす同様の問題がありました。

私のリポジトリメソッドは:

public List<ResultClass> findAllByTypeAndObjects(String type, List<Object> objects);

タイプResultClassのプロパティタイプが見つからないというエラーが発生しました。

解決策は、そのjpa / hibernateが複数をサポートしていないということでしたか?それにもかかわらず、「s」を削除すると問題が解決しました。

public List<ResultClass> findAllByTypeAndObject(String type, List<Object>

何を削除しましたか?これら2つの線は同じように見えます
Raymond Chen

@ user7344209この間違いを直しました。2番目のコードサンプルのメソッド名を参照してください。
mirisbowring

エンティティ名オブジェクトについてもですか?
Pサティシュパトロ

0

新しい例外(1.5.4から1.5.20へ)に移行するときに、この例外が発生しました。問題はリポジトリパッケージの構造にありました。

問題:同じパッケージの下にパッケージがありました:リポジトリー、repositoryCustom、repositoryImpl。

解決策:リポジトリパッケージを再配置して、リポジトリパッケージにrepositoryCustomパッケージが含まれ、repositoryCustomパッケージにrepositoryImplが含まれるようにします。

リポジトリ 
   |
   ----- repositoryCustom
             |
             ----- repositoryImpl

0

ここではまだ説明していませんが、このエラーの原因となった別のシナリオは、SwaggerからAPIを呼び出すときに、APIを受信Pageable(またはSort)し、そのまま、JPAリポジトリーに渡します。

PageableパラメータのSwaggerデフォルト値は次のとおりです。

  {
    "page": 0,
    "size": 0,
    "sort": [
      "string"
    ]
  }

"string"存在するプロパティがあるthereに注意してください。削除または変更せずにAPIを実行すると、org.springframework.data.mapping.PropertyReferenceException: No property string found for type ...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.