2011-09-12 4 views
5

내 응용 프로그램은 Windows 환경에서 정상적으로 작동하지만 Linux 서버에서 테스트하려고 할 때 JPA EclipseLink sql 생성에 문제가 있습니다. 소문자로JPA, EclipseLink 및 대소 문자를 구분하는 MySQL의 문제점

이 같은 다른 사람과 혼합
INSERT INTO PFC(ID, ALUMN,PROPOSED_ID) VALUES (?, ?, ?) 

(시퀀스) : 나는 소문자 내 모든 테이블을 만들어,하지만 난 로그에서 볼 때, 나는 모든 대문자로, 그 같은 것을 볼 수

INSERT INTO buzonmensajes (mensajeid, buzonid) VALUES (?, ?) 
     bind => [27, 1] 

물론 이 모든 잘못되면, 서버가

우리는 모든 데이터베이스 작업을 정의하는 orm.xml을 사용 등등 대문자 테이블을 찾을 수 없습니다 (쿼리, 기관, 등) 및 소문자로 된 모든 것 ...

이러한 동작을 변경하는 MySQL 매개 변수가 있음을 알고 있지만 불행히도 변경할 수 없습니다. 내 문제는 모든 쿼리를 작성하고 소문자로 테이블 이름이있는 statmets를 JPA에 알려야한다는 것입니다.

답변

5

EclipseLink에서 일부 이름을 기본값으로 허용하고 있기 때문에 문제가 발생할 가능성이 있습니다. 데이터베이스의 대소 문자를 사용하여 이름을 지정할 경우 EclipseLink는 기본적으로 이러한 사례를 사용해야합니다.

당신이 찾아내는 경우에

는 항상 '\ "'패턴을 사용하여 구분 식별자를 사용하여 케이스를 적용 할 수 있습니다 작동하지 않습니다 : @Table("\"pfc\"")을하지만이 필요하지 말아야

당신이

사용하는 EclipseLink가 어떤 버전의.?을
+1

안녕하세요, 고든 네 도움을 주셔서 감사합니다. 주석이 없으며 orm.xml의 모든 엔티티를 구성하지만 올바른 경우 태그

을 추가하여 테이블 이름을 정의하면 문제가 해결됩니다. :
Aitor

관련 문제