2013-06-29 27 views
5

Hazırda bekletme ve bir MySql sunucusu kullanıyorum. Birden çok veritabanını "ad alanları" olarak kullanıyorum (ör. users, transactions, logging vb.).Hazırda bekletme neden bu SQL sorgusunu oluşturuyor?

Yani, belirli bir veritabanına bağlanmak DEĞİL için Hibernate configued:

url = jdbc:mysql://127.0.0.1/

tablolar catalog özelliğiyle HBM dosyalarında tanımlanmıştır bulunan veritabanlarını:

<class name="com.myApp.entities.User" table="user" schema="" catalog="users"> ... 

Bazı verileri yüklemek istediğimde, her şey iyi çalışıyor ve Hazırda Beklet, beklenen SQL sorgularını oluşturuyor gibi görünüyor (katalog adlarını kullanarak tablo adlarını kullanarak) : Ben yeni bir kayıt eklemeye çalıştığınızda

Ancak
select id from users.user 

, hazırda artık from [catalog].[table_name] sözdizimi kullanmayın. Bu yüzden bir 'MySQL hatası' veritabanı seçilmedi 'alıyorum.

select max(id) from user 

hazırda yeni bir kayıt oluşturmak için gelecekteki kimliği almak çalışıyor, ancak veritabanı tablosu bulunduğu belirtmez, bu olmalıdır:

select max(id) from users.user 

Neden hazırda oluşturucusudur Bu geçersiz sorgu? Birisi bu problemi yaşadı mı?

+0

Kullandığınız hazırda bekletme sürümü nedir? –

+0

Hibernate-4.2.2 kullanıyorum –

+0

kullanırsanız ne olur: schema = "users" catalog = "users"? – Rafa

cevap

1

Jeneratör için şema belirtmeniz gerekir. Daha ayrıntılı bir cevap için this question on SO'a bakın.

İlgili konular