Ben bir grup tablo ile JPA 1.0 Varlıkları Hibernate 3.3.3 ile eşlenmiş bir Seam 2.2 tabanlı Java EE 5 web uygulaması var. Geliştirme sırasında, bir Tomcat 6, Oracle 10 XE ve Windows 7 üzerinde çalışıyor.JPA Entiy tablo yerine eşanlamlı olarak
Şimdi, veri modelini tüm veritabanı nesnelerinin (myschema
) ve bir şemanın sahibi olan bir şemaya bölmek için operasyon departmanının talebi vardı uygulamanın veritabanı kullanıcısı olarak davranır (myschema_app
). (Kullanıma bağlı bir veya daha fazlasının select
bağlı ve dizilerin: myschema
(m ara tablolar düzenli olanlar ve n her ikisi de) den gerekli tüm masalarda
- oluşturmak şema
myschema_app
- hibe nesne haklarını: Ben şu yaptım ,
insert
,update
,delete
)myschema_app
- - eskisinden daha aynı adları kullanmak için
myschema_app
özel eş anlamlılarını beyan ve diğer schemaNamingContext adı öneki gizleme - mülkiyet değiştirmekYeni şema ismine
persistence.xml
yılındavalidate
içinhibernate.hbm2ddl.auto
set yerken kullanıcı/
context.xml
yılında Tomcat'in veri kaynağı tanımı şifre Uygulamayı başlattığınızda çerçeve EntityManagerFactory
oluşturmaya çalıştığında, bir istisna olsun Bana bir masanın eksik olduğunu söylüyor. Bir sql aracında myschema_app
bağlı bir select deyimini doğrudan çalıştırdığımda her şey iyi çalışıyor.
Başka bir tablodaki eşanlamlı kullanımın, uygulama için saydam olduğunu anlamıştım. Neyi gözden kaçırdığımı bilen var mı?
. Evet, daha önce de gördüğüm gibi, bu parametrenin uygulanmasının işe yaradığını görüyoruz, fakat Hibernate'in doğrulama sırasında eşanlamları desteklememesi çok yazık çünkü uygulamanın başlangıcından emin olmak için şemayı başlangıçta doğrulamak iyi bir şey. . –
Sorun, tablo türlerinin özel statik finaline kodlanmış olduğu org.hibernate.tool.hbm2ddl.DatabaseMetadata sınıfında sorun var. String [] TYPES = {"TABLE", "VIEW"}; gerçekten özel statik final olmalıdır. [] TYPES = {"TABLE", "VIEW", "ALIAS", "SYNONYM"}; – user482745