@Embeddable中具有@GeneratedValue的@EmbeddedId

@Embeddable中具有@GeneratedValue的@EmbeddedId,第1张

@Embeddable中具有@GeneratedValue的@EmbeddedId

您的JPA

@Id
不需要匹配数据库PK列。只要它是唯一的,那么这就是所有要紧的事情,并且由于关联的列是自动递增的列,因此会是这种情况。

从https://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing:

JPA Id不必总是与数据库表的主键约束匹配,也不需要主键或唯一约束。

因此,尽管可以按照

PRIMARY KEY (id_operation,id_menu)
看起来的方式配置关联表的PK,但
id_operation
通过自动递增,它可以单独作为PK,因此可以将 *** 作映射如下:

@Entitypublic class Operation{    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private Long id;    @ManyToOne    @JoinColumn(name = "id_menu")    private Menu menu;}

如果创建相关的IDClass,则可以如下映射OperationRole。有关此方案以及ID类如何查找的示例,请参见:

https://zh.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing#Example_JPA_2.0_ManyToOne_id_annotation

@Entity@IdClass(OperationRolePk.class)public class OperationRole{        @Id        @ManyToOne        @JoinColumn(name = "id_operation")        private Operation operation;        @Id        @ManyToOne        @JoinColumn(name = "id_menu")        private Menu menu;        @Id        @ManyToOne        @JoinColumn(name = "id_user")        private User user;}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5124823.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-17
下一篇2022-11-17

发表评论

登录后才能评论

评论列表(0条)

    保存