hibernate search timestamp problemi

hibernate java için seneler önce yazılmış orda burda genelde enterprise level eşşek boyu işlerde kullanılan bir ORM dir. up uzun bir hikayedir kendisi yazının amacı bir alt projesi olan “hibernate search”.

hibernate search bu hibernate i yazanlar tarafından yumurtlanmıştır. ulan biz bi dünya database işi yapıoz bu database de illa bir arama yapılacak.

select bisey from tablo1 where aranacak_kolon like ‘%aranan%’

şeklinde sql ler koşturmakda hiç bir database in hoşuna gitmez ve yavaş çalışır o zaman ne yapmalı biz bunun altına lucene dayayalım denmiş ve hibernate search çıkmış.

gelelim timestamp sorununa. java.sql.Timestamp normalde hibernate in date kolonları için kullanılan klasik bir değişkendir içine zaman verisi atılır. fekat hibernate search ilen indexleyem dendiğinde sıçmaya sebep olur alınan hata :

Unable to guess FieldBridge for created

created orda timestamp seçili kolon veya değişkendir. evvelden bu hatayı aldığımda class da tanımlı değişkeni java.util.Date ile değiştirdim problem çözüldü. bu sefer çok derin bi yerde rastladım. Entity class ımda. ki bu class bütün pojolarımın baba class’ı olduğundan getCrated() fonksiyonunun dönüşüne Date dediğimde kodun her yanı ayrı patladı 😀 başladım kurcalanmaya bi çözüm buldum. custom FieldBridge yazmak. ama kim uğraşcak ulen dedim okumaya devam ettim sonunda çözüm hibernate search’ün @field ile verilen annotationlarında bulundu.

@Field(index=Index.UN_TOKENIZED)
@DateBridge(resolution=Resolution.MILLISECOND)
public Timestamp getCreated(){
return super.getCreated();
}

kodu bu şekilde düzeltince ne dert kaldı nede tasa mis gibi çalışıyor.

Leave a Reply

Your email address will not be published. Required fields are marked *