Ich bin mit Java + Spring + Hibernate@OneToOne Mit @JoinColumn, die nur die UUID anstelle des gesamten Objekts hält
Wenn Sie den folgenden Code zu testen, erhalte ich eine Fehlermeldung:
javax.persistence.PersistenceException: org.hibernate.PropertyAccessException: could not get a field value by reflection getter of com.XXX.XXX.entity.Policy.id
@Entity
@Table(name = "assignment")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Assignment extends BaseEntity {
@Id
@Column(name = "id")
@Type(type = "pg-uuid")
@NotTracked
private UUID id;
@OneToOne(targetEntity = Policy.class)
@JoinColumn(name = "policy_id", nullable = false, referencedColumnName = "policy_id")
@OnDelete(action = OnDeleteAction.CASCADE)
@TrackedEntity(isIdentityField = true)
private UUID policyID;
}
@Entity
@Table(name = "policy")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "policy")
@Inheritance(strategy = InheritanceType.JOINED)
public class Policy extends BaseEntity {
@Id
@Column(name = "policy_id")
@Type(type = "pg-uuid")
@NotTracked
private UUID id;
...
...
..
}
Wenn die private UUID policyID;
von UUID
zu Policy
ändern, seine Arbeit ganz gut, ist es eine Möglichkeit, irgendwie einen Bezug auf spezielle Objekt innerhalb Politik als ID einzustellen, anstatt das gesamte Objekt der Politik innerhalb der Zuordnungsobjekt hält?