pk여러개 달아놓고 쓰는 방법
pk 순서를 정하는건 잘 안된다.
이 부분을 수정하려면 하이버네이트 코드 커스터마이징을 하던가 해야할듯하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
@Data @Embeddable public class GameId implements Serializable { /** * */ private static final long serialVersionUID = -229826876863703005L; @Type(type = "org.beansugar.tools.hibernate.JodaDateTimeUserType") // @Column(name="GameTime", columnDefinition="CURRENT_TIMESTAMP") private DateTime gameTime; private String username; private String gameCode; } @Data @Entity @Table(name = "GAME_INFO") public class GameInfo implements Serializable { /** * */ private static final long serialVersionUID = -8733838789326651901L; @EmbeddedId private GameId id; private boolean callPut; private float price; } |
위 코드로 생성을 하면 아래의 쿼리가 나온다.
1 2 3 4 5 6 7 8 |
CREATE TABLE `GAME_INFO` ( `gameCode` varchar(255) NOT NULL, `gameTime` datetime NOT NULL, `username` varchar(255) NOT NULL, `callPut` tinyint(1) NOT NULL, `price` float NOT NULL, PRIMARY KEY (`gameCode`,`gameTime`,`username`) ) |
pk순서가 time, code, name이면 좋겠는데… 이 부분이 조절이 잘 안된다. abc순서로 순서가 잡히는거라면 이름을 바꿔서 짓는것도 고려해봐야겠다.
특별히 제공하는 방법은 없는 것 같으니… 하이버네이트에서 어노테이션을 스캔하는 코드를 찾아서 상속받아서 수정하고 다시 쑤셔넣어주는게 좋을듯하다.
소스코드를 찾아서 재컴파일해서 lib폴더나 개인용 mavenrepo에 넣는것보다는… 낫지않을까 하는 생각이다.