小编Gar*_*ett的帖子

如何使用JPA/Hibernate设置复合主键的列顺序

我在复合主键中对列的排序有问题.我有一个包含以下内容的表:

@Embeddable
public class MessageInfo implements Serializable {

    private byte loc;
    private long epochtime;

    @Column(name = "loc")
    public byte getLoc() {
        return loc;
    }    

    @Column(name = "epochtime")
    public long getEpochtime() {
        return epochtime;
    }
}
Run Code Online (Sandbox Code Playgroud)

它用于此映射:

@MappedSuperclass
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public abstract class AbstractMessage implements Message {

    private MessageInfo info;
    private int blah;

    @EmbeddedId
    public MessageInfo getInfo() {
        return info;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我用一个具体的@Table类继承AbstractMessage时,hibernate创建了没有错误的数据库和表.问题是hibernate生成复合主键,其列与我想要的顺序相反.

CREATE TABLE  `mydb`.`concrete_table` (
  `epochtime` bigint(20) NOT NULL,
  `loc` tinyint(4) NOT NULL,
  `blah` smallint(6) DEFAULT NULL,
  `foo` …
Run Code Online (Sandbox Code Playgroud)

mysql hibernate jpa composite-primary-key

3
推荐指数
2
解决办法
2563
查看次数

标签 统计

composite-primary-key ×1

hibernate ×1

jpa ×1

mysql ×1