从图中可以看出,Card_balance指的是Cards。我需要 Cards 实体在切换到 ORM 时有一个 Card_balance 字段,并且有一个单向关系,其中 Cards 指的是 Card_balance。我试着这样做:
@Entity
@Table(name = "CARDS")
public class Cards implements Serializable {
@Id
@Column(name = "CARD_ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CARDS_SEQ")
@SequenceGenerator(name = "CARDS_SEQ", sequenceName = "CARDS_SEQ")
private Long cardId;
...
@OneToOne
@JoinColumn(name="CARD_ID", nullable = false)
private CardBalance cardBalance;
并将 cardId 字段添加到 card_balance
@Entity
@Table(name = "CARD_BALANCE")
public class CardBalance {
@Id
@Column(name = "BALANCE_ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CARD_BALANCE_SEQ")
@SequenceGenerator(name = "CARD_BALANCE_SEQ", sequenceName = "CARD_BALANCE_SEQ")
private Long balanceId;
...
@Column(name="CARD_ID")
private Long cardId;
但是这种方法不起作用,因为从卡片数据库中提取时,我得到以下信息:

请告诉我哪里错了。

在我看来,您对术语感到困惑。
CAPTAIN.CARDS在图中,和之间的关系CAPTAIN.CARD_BALANCE不是一对一的,而是一对多的。类中的映射不明确Cards,首先CARD_ID用实体本身的 Id 定义一个列,然后在下面定义另一个CARD_ID带有链接的列CardBalance。尝试一下,将第二个重命名为 BALANCE_ID,例如: