155

好吧,我搜索了谷歌,发现了很多结果,但没有一个能够回答我的问题。所以,就这样吧。

我正在尝试通过对 pinterest 克隆的最小实现来研究 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> {

}

现在,当我调用 in 中的findLatestBoards方法时BoardService,在线上抛出“No Property Found”异常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"in 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 作为持久性提供程序。此外,我放在这里的代码部分是我认为与问题相关的部分。如果不是,请告诉我,我将使用所需部分更新问题。

4

25 回答 25

162

我遇到了同样的问题并在这里找到了解决方案: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 创建一个新的 Repository 实现时,它会分析接口定义的所有方法,并尝试从方法名称自动生成查询。虽然这有局限性,但它是一种非常强大且优雅的方式,可以轻松定义新的自定义访问方法。例如,如果托管实体有一个 name 字段(以及该字段的 Java Bean 标准 getter 和 setter),则在 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
于 2014-10-23T23:19:08.610 回答
106

Your naming is not correct.

As per the documentation, if your repository is UserBoardRepository, the implementation of your custom repository should be name as UserBoardRepositoryImpl, here you named it as BoardServiceImpl, that's why it throws the exception.

于 2015-05-09T11:21:33.447 回答
53
于 2017-03-31T10:26:25.887 回答
35

由于您的 JPA 存储库名称是UserBoardRepository,因此您的自定义接口名称应该是UserBoardRepositoryCustom(它应该以 'Custom' 结尾)并且您的实现类名称应该是UserBoardRepositoryImpl (应该以 Impl 结尾;您可以使用存储库使用不同的后缀设置它 - impl-postfix属性)

于 2017-01-22T14:34:33.427 回答
22

如果您尝试访问不存在的属性,则会发生此错误

我的猜测是排序是由 spring byproperty name而不是 by完成的real column name。并且错误表明,"UserBoard"没有名为 的属性"boardId"

最好的,

橡木

于 2013-11-26T13:52:33.900 回答
16

就我而言,我的方法名称中有一个错字(驼峰式)。我将它命名为“findbyLastName”并遇到了这个异常。在我将其更改为“findByLastName”后,异常消失了。

于 2016-12-07T20:42:38.517 回答
9

请注意:Zane XY 和 Alan B. Dee 的答案非常好。然而,对于那些现在将使用 Spring Boot 和 Spring Data 的人来说,这将是一个更现代的答案。

假设您有一个类,例如:

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

    private String myClassName;
}

现在JpaRepository这个看起来像

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

现在您的“自定义” find by method 必须准确拼写Collection<MyClass> findByMyClassName(String myClassName),因为 Spring 需要一些机制来将此方法映射到MyClassproperty myClassName

我发现了这一点,因为对我来说,从语义上通过其名称找到一个类 似乎很自然,而实际上,您可以通过 myClassName 找到语法

干杯

于 2017-07-26T21:32:30.160 回答
5

在我的例子中,我在创建 PageRequest 对象时使用了错误的列名进行排序。

PageRequest paging = PageRequest.of(page, 30, Sort.by("column_name")); 

正确的语法是

PageRequest paging = PageRequest.of(page, 30, Sort.by("columnName")); 

Spring 给出错误“找不到类型列的属性”。我正在查看存储库和实体,但没有找到任何东西。错误出现在我创建 PageRequest 对象的控制器上。

因此,当您使用错误的语义时会引发错误,但您不必只在存储库中犯错。

于 2021-03-06T04:03:52.477 回答
3

看起来您的自定义 JpaRepository 方法名称与实体类中的任何变量都不匹配。确保您的方法名称与实体类中的变量匹配

例如:您有一个名为“active”的变量名,而您的自定义 JpaRepository 方法显示“findByActiveStatus”,由于没有名为“activeStatus”的变量,它会抛出“PropertyReferenceException”

于 2020-04-26T18:02:31.533 回答
2

导致此错误的另一种情况是 API 在从 Swagger 调用 API 时接收Pageable(或Sort)并将其按原样传递到 JPA 存储库。

Swagger 参数的默认值Pageable是这样的:

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

注意"string"那里确实存在一个属性。运行 API 而不删除或更改它会导致org.springframework.data.mapping.PropertyReferenceException: No property string found for type ...

于 2020-07-29T14:37:50.357 回答
1

我有一个类似的问题,让我头痛了几个小时。

我的存储库方法是:

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

我收到错误,找不到类型 ResultClass 的属性类型。

解决方案是,jpa/hibernate 不支持复数?尽管如此,删除's'解决了这个问题:

public List<ResultClass> findAllByTypeAndObject(String type, List<Object>
于 2019-08-28T07:11:42.227 回答
1

请检查 repo ei repository.findByUsername(username) 的默认调用中的属性名称

于 2019-11-25T10:25:17.410 回答
0

在 JPA 中,关系只有一个所有者,通过mappedBy在您的UserBoard类中使用,您可以告诉它PinItem是该双向关系的所有者,并且关系中的属性PinItem被命名为board

在您的UserBoard班级中,您没有任何带有 name 的字段/属性board,但它有一个 property pinItemList,因此您可以尝试使用该属性。

于 2013-10-28T11:35:33.917 回答
0

如果你使用像 MessageStatus 这样的 ENUM,你可能需要一个转换器。只需添加此类:

import javax.persistence.AttributeConverter;
import javax.persistence.Converter;

/**
 * Convert ENUM type in JPA.
 */
@Converter(autoApply = true)
public class MessageStatusConverter implements AttributeConverter<MessageStatus, Integer> {
  @Override
  public Integer convertToDatabaseColumn(MessageStatus messageStatus) {
    return messageStatus.getValue();
  }

  @Override
  public MessageStatus convertToEntityAttribute(Integer i) {
    return MessageStatus.valueOf(i);
  }
}
于 2020-10-05T11:30:03.097 回答
0

如果您在 bean 中使用复合键,则您的参数将是一个对象。您需要根据新组合调整您的 findBy 方法。

@Embeddable
public class CombinationId implements Serializable {

  private String xId;
  private String yId;
}

public class RealObject implements Serializable, Persistable<CombinationId> {

  @EmbeddedId private CombinationId id;
}

在这种情况下,您的存储库 findBy 方法应该是这样的

@Repository
public interface PaymentProfileRepository extends JpaRepository<RealObject, String> {

  List<RealObject> findById_XId(String someString);
}
于 2020-10-05T11:23:21.517 回答
0

您可以从PagingAndSortingRepository.

于 2022-02-02T14:37:35.293 回答
0

除了建议之外,我还建议使用@Repository注释您的 Repository 接口。

Spring IOC 可能无法将其检测为存储库,因此无法检测到实体及其相应的属性。

于 2020-09-19T13:16:57.977 回答
0

您应该在模型或实体类中定义该属性。

于 2019-06-14T05:06:07.830 回答
0

我最近在迁移到更新的 spring-boot 版本(从 1.5.4 到 1.5.20)时遇到了这个异常。问题出在存储库包结构中。

问题:在同一个包下有包:repository、repositoryCustom 和repositoryImpl。

解决方案:重新排列repository包,使repository包包含repositoryCustom包,repositoryCustom包包含repositoryImpl:

存储库
   |
   ----- 存储库自定义
             |
             ----- repositoryImpl
于 2019-11-12T09:40:48.587 回答
0

如果您的项目使用 Spring-Boot,您可以尝试在 Application.java 中添加此注释。

@EnableJpaRepositories(repositoryFactoryBeanClass=CustomRepositoryFactoryBean.class)
@SpringBootApplication

public class Application {.....
于 2017-07-11T10:13:37.390 回答
0

我使用投影并且有同样的错误。

我用过getIssueTime();而不是getCreateTime();

当我修复了命名的属性并解决了问题。

于 2021-05-26T09:03:19.987 回答
0

你应该会收到使用页面,像这样

 @Override
public Page<UserBoard> findLatestBoards() {
    PageRequest request = new PageRequest(
                 0, PresentationUtil.PAGE_SIZE, 
                 Sort.Direction.DESC, "boardId"
    );
    return boardRepository.findAll(request).getContent();
}
于 2019-05-17T04:53:25.103 回答
0

这种问题是由于类中缺少构造函数。创建默认构造函数

于 2021-09-22T07:40:10.997 回答
0

这可能会帮助像我这样有类似问题的人,我遵循所有命名和接口标准。,但我仍然面临问题。

My param name was -->  update_datetime 

我想根据 update_datetime 以降序获取我的实体,但我收到了错误

org.springframework.data.mapping.PropertyReferenceException: No property update found for type Release!

不知何故,它没有读取下划线字符 --> ( _ )

so for workaround i changed the property name as  --> updateDatetime 

然后使用相同的方法使用 JpaRepository 方法。

有效 !

于 2021-01-01T09:17:14.993 回答
0

在我的情况下,我的属性名称是“card_set_code”,我只是改为“cardSetCode”并工作

于 2022-03-01T02:37:26.183 回答