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

JPA和Hibernate-具有外键的复合主键

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

JPA和Hibernate-具有外键的复合主键

您有很多错误。如果您正在使用,

@EmbeddedId
则您的ID类需要是可嵌入的。

@Embeddablepublic class InteractionId {    @Column(name="name")    String name;    Long drugId; //type should be same as for ID field on Medicine    //equals and hashpre etc.}

您还需要一个从

DrugInteraction
Medicine
注释的关系
MapsId

@Entity@Table(name = "drugInteractions")public class DrugInteraction {    @EmbeddedId    private InteractionId interactionId;    @MapsId("drugId")//value corresponds to property in the ID class    @ManyToOne    @JoinColumn(name = "drug_id")    private Medicine medicine;}

要保存新实例:

DrugInteraction di = new DrugInteraction();Medicine medicine = //an existing medicinedi.setName("Some Name");di.setMedicine(medicine);//save

或者 ,也可以使用

IDClass
而不是
EmbeddedId

//not an embeddablepublic class InteractionId {    String name;    Long drugId; //type should be same as for ID field on Medicine    //equals and hashpre etc.}

并更改映射:

@Entity@Table(name = "drugInteractions")@IdClass(InteractionId.class) //specify the ID classpublic class DrugInteraction {    @Id    private String name;    @Id    @ManyToOne    @JoinColumn(name = "drug_id")    private Medicine medicine;}


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

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

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