복합 기본 키의 열 순서에 문제가 있습니다.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;
}
}
그것은이 매핑에 사용됩니다 :
@MappedSuperclass
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public abstract class AbstractMessage implements Message {
private MessageInfo info;
private int blah;
@EmbeddedId
public MessageInfo getInfo() {
return info;
}
}
나는 구체적인 @Table 클래스 최대 절전 모드로 경우 AbstractMessage를 서브 할 때 오류없이 데이터베이스와 테이블을 생성 나는 다음을 포함하는 테이블이 있습니다. 문제는 최대 절전 모드가 내가 원했던 것의 역순으로 열이있는 복합 기본 키를 생성한다는 것입니다.
CREATE TABLE `mydb`.`concrete_table` (
`epochtime` bigint(20) NOT NULL,
`loc` tinyint(4) NOT NULL,
`blah` smallint(6) DEFAULT NULL,
`foo` smallint(6) DEFAULT NULL,
PRIMARY KEY (`epochtime`,`loc`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
나는 내가 10 LOC 년대의 최대있을 것이라는 점을 알고 있지만, 각 LOC 많은 대기원 시보 때문에 기본 키가
PRIMARY KEY (`loc`,`epochtime`)
되고 싶어요.
어떤 도움을 주시면 감사하겠습니다 =)
그래, 그게 지금 우리가하고있는 일이야. 나는 Hibernate가 디폴트를 변경하기위한 어떤 기능을 갖기를 희망했다. 응답 시간을내어 주셔서 감사합니다. – Garrett