【问题标题】:Error java.lang.UnsupportedOperationException: No accessor to set property错误 java.lang.UnsupportedOperationException:没有访问器来设置属性
【发布时间】:2020-03-14 10:29:01
【问题描述】:

我在部署到 QA Env 后运行代码时看到以下错误。同样的代码在我们的 Eclipse 中运行良好。我在 POM 文件中添加了 lombok 依赖项。我们是否需要像在 eclipse 中一样将 lombok 安装到 unix box 中?

java.lang.UnsupportedOperationException: No accessor to set property @org.springframework.data.cassandra.core.mapping.PrimaryKeyColumn(ordering=ASCENDING, forceQuote=false, name=order_number, type=PARTITIONED, value=order_number, ordinal=0)private final java.lang.String test.com.zdc.tmp.persistence.entity.OrderEntity.orderNumber!
    at test.com.zdc.tmp.persistence.entity.OrderEntity_Accessor_u9f29k.setProperty(Unknown Source) ~[periscope-persistence-0.0.1b191.jar!/:?]
    at org.springframework.data.mapping.model.ConvertingPropertyAccessor.setProperty(ConvertingPropertyAccessor.java:61) ~[spring-data-commons-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
    at org.springframework.data.cassandra.core.convert.MappingCassandraConverter.readProperty(MappingCassandraConverter.java:313) ~[spring-data-cassandra-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
    at org.springframework.data.cassandra.core.convert.MappingCassandraConverter.readProperties(MappingCassandraConverter.java:300) ~[spring-data-cassandra-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
    at org.springframework.data.cassandra.core.convert.MappingCassandraConverter.doReadEntity(MappingCassandraConverter.java:289) ~[spring-data-cassandra-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
    at org.springframework.data.cassandra.core.convert.MappingCassandraConverter.doReadEntity(MappingCassandraConverter.java:274) ~[spring-data-cassandra-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
    at org.springframework.data.cassandra.core.convert.MappingCassandraConverter.readEntityFromRow(MappingCassandraConverter.java:252) ~[spring-data-cassandra-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]
    at org.springframework.data.cassandra.core.convert.MappingCassandraConverter.readRow(MappingCassandraConverter.java:248) ~[spring-data-cassandra-2.1.10.RELEASE.jar!/:2.1.10.RELEASE]

订单实体代码。

@Table("test")
@Value
@Builder
public class OrderEntity {

    @PrimaryKeyColumn(name = "order_number", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
    String orderNumber;

【问题讨论】:

    标签: java spring-boot lombok


    【解决方案1】:

    @Value 不会在 lombok 中生成设置器。见here

    使用@Data 怎么样?

    【讨论】:

    • 我会试试的。知道为什么相同的代码在本地 Eclipse 中运行良好吗?
    • 您最近是否更改了 lombok 或 spring-data 的版本?lombok 到 v0.11.8 为每个最终私有字段生成 @Wither 方法,默认情况下与 @Value 相关,但不再和spring-data 可以利用这些@Wither 方法来设置最终的私有字段。来自 Lovelace (2.1.10.RELEASE) 版本的 Spring 数据不再使用反射来设置最终私有字段。
    • 我正在使用 lombok-1.16.22.jar
    猜你喜欢
    • 1970-01-01
    • 2017-09-03
    • 2022-06-30
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多