2011-01-18 28 views
15

Hazırda bekletme durumunun yakın zamanda 3.6'da tür sistemini yeniden düzenlediğinin farkındayım. Bu, şimdi bir java sınıfını bir tür (veya UserType) ile ilişkilendirmenize olanak tanıdığını düşünüyorum. Örneğin, joda-time kullanıyorum ve LocalDate ve LocalDateTime ile uygun SQL türlerini eşleyen bir kaç UserTypes var.Hazırda Bekleme Türü Yeniden Çalıştırma

Bu, nesnelerle çalışırken iyi çalışır, ancak bir HBA parametresi olarak bir joda türünü geçmek istiyorsanız, hazırda bekletme olursa, her arama yaptığımda Tür'ü tedarik etmem gerektiğini unutmayın.

query.setParameter("now", new LocalDateTime(), Hibernate.custom(LocalDateTimeType.class)); 

Ben LocalDateTime söylemek Yapılandırma/SessionFactory kurulum aşamasında artık mümkün olduğunu düşünüyorum -> LocalDatetimeType ama bunu nasıl emin değilim. TypeResolver'ı buldum, ancak bunu başarmak için hangi yöntemi çağırmalıyım diye deşifre etmekte güçlük çektim. Veya, 3.6'daki yeni türdekilerle bu mümkün değilse, lütfen beni düzeltin.

cevap

10

Kendi sorumu yanıtlama.

Nasıl yapılacağını bildiğiniz kadar basit. bilinmeyen türleri için

configuration.getTypeResolver().registerTypeOverride(LocalDateTimeType.TYPE, new String[]{ LocalDateTime.class.getName() }); 
configuration.getTypeResolver().registerTypeOverride(LocalDateType.TYPE, new String[]{ LocalDate.class.getName() }); 

TypeResolver aramaları registrationKey iş yapar şekilde sınıfın tam adını tescil sınıf adı kullanın.

İlgili konular