Java 通过反射访问持久属性X的字段X时出错

Java 通过反射访问持久属性X的字段X时出错,java,mysql,jpa,spring-boot,Java,Mysql,Jpa,Spring Boot,我有两门课,TransportOrder和Lardisender。它由字段innerId限定,我只想列出lardisenderdorder表中的所有记录,但出现了此错误 Error accessing field [private java.lang.Integer com.example.model.LardiSendedOrder.innerId] by reflection for persistent property [com.example.model.LardiSendedOrde

我有两门课,TransportOrder和Lardisender。它由字段
innerId
限定,我只想列出lardisenderdorder表中的所有记录,但出现了此错误

Error accessing field [private java.lang.Integer com.example.model.LardiSendedOrder.innerId] by reflection for persistent property [com.example.model.LardiSendedOrder#innerId] : 1;
类别运输令

@Entity
    class TransportOrder {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;
    private String url;
    private String source;
    private String transport;
    private Date start_date;
    private Date end_date;
    private String start_address;
    private String end_address;
    private ArrayList<String> phones =new ArrayList<>()
    private Integer distance;
    private String content;
    private String weight;
    private String size;
    private Boolean fromVendor;
    private ArrayList<PaymentType> payment_type = new ArrayList<PaymentType>();
    private Double payment;
    private String payment_by;
    private ArrayList<PaymentEvent> payment_event = new ArrayList<PaymentEvent>();
    private Date add_date;
    @NotNull
    @Column(unique=true)
    private Integer hashCode;

    LardiSendedOrder getLardiSendedOrder() {
        return lardiSendedOrder
    }

    void setLardiSendedOrder(LardiSendedOrder lardiSendedOrder) {
        this.lardiSendedOrder = lardiSendedOrder
    }
    @OneToOne
    @JoinColumn(
           /* referencedColumnName = "innerId"*/
            referencedColumnName = "innerId"
    )
    private LardiSendedOrder lardiSendedOrder;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

//another getters and setters omitted
}
我只是打电话

   ArrayList<LardiSendedOrder> orders = (ArrayList<LardiSendedOrder>) lardiSendedOrderRepository.findAll();
ArrayList orders=(ArrayList)lardisendorderrepository.findAll();

为什么不按其id(即
id
字段)映射
lardisenderder
?事实上,JPA提供者必须假设
innerId
可能为null或非唯一(即使这可能与您得到的错误直接相关)那么,
Lardisenderder
TransportOrder
是如何关联的呢?它们位于不同的层次结构中,因此可能也代表不同的表。另外,如果
innerId
transportOrder
的id,那么映射的位置在哪里?我不会映射它,因为不是所有的transportOrder都会在lardiseedOrder中有相应的记录。Lardisender和TransportOrder有何关联我有很多订单,其中一些订单将在Lardisenderder中有记录,因此它们与transportOrder.id=Lardisenderder.innerId相关。我使用注释
@JoinColumn(ReferencedColumnName=“innerId”)
指定了这一点,也许我错了?我仍然不明白您要做什么。如果不是每个
lardisenderder
都有一个
TransportOrder
,那么只需将该关系设为空即可。如果不是每个
TransportOrder
都有相应的
lardisenderder
,那么也要使该关系单向。是的,我通过阅读更多示例来解决它。问题出在我对
mappedBy
指令的错误理解上,所以我对代码做了一些修改,所有的工作都很好)
   ArrayList<LardiSendedOrder> orders = (ArrayList<LardiSendedOrder>) lardiSendedOrderRepository.findAll();