Hibernate @GeneratedValue 질문있습니다.

451 views
Skip to first unread message

Ki-Seok Kim

unread,
May 3, 2013, 6:28:54 AM5/3/13
to ks...@googlegroups.com
안녕하세요.

고수 분들께 질문있습니다.

지금 Hibernate 를 쓰고있구요.. mysql, oracle 을 연동해야합니다.

그런데 문제가 있는데요 

@GeneratedValue(strategy=GenerationType.AUTO) 으로 쓰고있는데

이러면 mysql 에서는 autoincriment 속성이 적용되고.. oralcle 의 경우는 

hibernate_sequance 이름의 sequance 를 참조합니다.

문제는 일단 mysql, oracle 한 설정으로 둘다 적용되어야하거든요..

여기서 hibernate provider 가 oracle 을 적용할때 sequance name 을

테이블마다 다르게 적용할 방법이 없을까 궁금합니다.

hibernate 설정에 인터셉터가 없을까 아니면 perfix, suffix 라던지 이런

설정이 있다면 좋겠는데.. 방법이 없을까요?


황용대

unread,
May 3, 2013, 6:43:39 AM5/3/13
to ks...@googlegroups.com
mysql 에서 autoincrement를 쓰려면
GenerationType.IDENTITY 사용해야 할텐데요

AUTO를 사용하니 hibernate_sequance 시퀀스 테이블을 만들어내네요
생성 된 테이블에도 autoincrement 가 적용되지 않고요


2013-05-03 (금), 19:28 +0900, Ki-Seok Kim:
> --
> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이
> 전송되었습니다.
> 이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug
> +unsub...@googlegroups.com에 이메일을 보내세요.
> 이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
> http://groups.google.com/group/ksug?hl=ko-KR에서 그룹을 방문하세요.
> 더 많은 옵션을 보려면 https://groups.google.com/groups/opt_out을(를)
> 방문하세요.
>
>


Ki-Seok Kim

unread,
May 6, 2013, 3:19:22 AM5/6/13
to ks...@googlegroups.com
황용대님 답변 감사합니다.

개발중인 시스템에서는 @GeneratedValue(strategy=GenerationType.AUTO) 설정으로 autoInceriment 설정이 잘 적용됩니다.

그런데 hibernate 에서 테이블 생성을 하질 않고 저희는 쿼리로 테이블을 생성하고 작업하거든요.

그래서 그런거일수도 있는건지 확실치가 않내요..


일단 어떻게 이것저것 하다보니 저희 팀원중 한명이 방법을 찾았습니다.

방법은

@SequenceGenerator(name="test",sequenceName = "seq1")
@GeneratedValue(strategy=GenerationType.AUTO,generator = "test")

이런식으로 GenerationType.AUTO 을 주고 generator 를 지정해주면 오라클에선 시퀀스로 동작하고
mysql 에서는 autoincriment 로 동작하는걸 확인하였습니다.

아직 이것저것 더 테스트 해봐야 알겠지만.. 일단락 된거같습니다.

감사합니다.


2013년 5월 3일 오후 7:43, 황용대 <sta...@gmail.com>님의 말:
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+uns...@googlegroups.com에 이메일을 보내세요.
Reply all
Reply to author
Forward
0 new messages