나는 Hibernate와 MySql 서버를 사용하고있다. 여러 데이터베이스를 "네임 스페이스"로 사용합니다 (예 : users
, transactions
, logging
등).Hibernate가이 SQL 쿼리를 생성하는 이유는 무엇입니까?
그래서, 특정 데이터베이스에 연결하지 하이버 네이트를 configued :
url = jdbc:mysql://127.0.0.1/
테이블이 catalog
속성을 통해 HBM 파일에 정의되어있는 데이터베이스 :
<class name="com.myApp.entities.User" table="user" schema="" catalog="users"> ...
을 어떤 데이터를로드하고자 할 때, 모든 것이 잘 작동하고 Hibernate는 (테이블 이름에 카탈로그 접두어를 사용하여) 예상 된 SQL 쿼리를 생성하는 것처럼 보입니다. : 나는 새 레코드를 추가 할 때
그러나select id from users.user
, Hibernate는 더 이상 from [catalog].[table_name]
구문을 사용하지 마십시오. 그래서 MySQL 오류 '데이터베이스가 선택되지 않았습니다.'가 표시됩니다.
select max(id) from user
Hibernate가 새 레코드를 만들 수있는 미래의 ID를 얻을 시도하고 있지만 데이터베이스 테이블을 위치하는 지정하지 않습니다, 그것은해야한다 :
select max(id) from users.user
왜 최대 절전 모드 발생입니다 이 잘못된 쿼리? 누군가이 문제를 경험 한 적이 있습니까?
사용중인 최대 절전 모드 버전은 무엇입니까? –
Hibernate-4.2.2 –
을 사용하고있다 : schema = "users"catalog = "users"? – Rafa