当前位置:  开发笔记 > 编程语言 > 正文

JPA中的复合键

如何解决《JPA中的复合键》经验,为你挑选了1个好方法。

我想创建一个具有自动生成主键的实体,但也是一个由两个其他字段组成的唯一复合键.我如何在JPA中执行此操作?
我想这样做是因为主键应该在另一个表中用作外键并使其复合并不好.

在下面的代码片段中,我需要命令和模型是唯一的.pk当然是主键.

@Entity
@Table(name = "dm_action_plan")
public class ActionPlan {
    @Id
    private int pk;
    @Column(name = "command", nullable = false)
    private String command;
    @Column(name = "model", nullable = false)
    String model;
}

Michel.. 18

你可以使用@UniqueConstraint这样的东西:

@Entity
@Table(name = "dm_action_plan",
       uniqueConstraints={ @UniqueConstraint(columnNames= "command","model") } )
public class ActionPlan {
    @Id
    private int pk;

    @Column(name = "command", nullable = false)
    private String command;

    @Column(name = "model", nullable = false)
    String model;
}

这将允许您的JPA实现为唯一约束生成DDL.



1> Michel..:

你可以使用@UniqueConstraint这样的东西:

@Entity
@Table(name = "dm_action_plan",
       uniqueConstraints={ @UniqueConstraint(columnNames= "command","model") } )
public class ActionPlan {
    @Id
    private int pk;

    @Column(name = "command", nullable = false)
    private String command;

    @Column(name = "model", nullable = false)
    String model;
}

这将允许您的JPA实现为唯一约束生成DDL.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有