栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

@Embeddable中具有@GeneratedValue的@EmbeddedId

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

@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;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/435965.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号