oracle constraint bulma

gelen exceptionlar şu şekilde

ORA-00001: unique constraint (SCHEMA.SYS_C0067078) violated

sağolsun hibernate veya oracle create ederken çok nadide isim seçmiş SYS_C0067078 velhasılı bunu görücne insan bişey anlamıyor. constraintin ilişkili olduğu tablo ve detayı için oracle da

select * from all_constraints
where owner = ‘SCHEMA’
and constraint_name = ‘SYS_C0067078’;

çalıştırmak yeterli.

hibernate ve kolon isimleri

hibernate ile uygulama geliştirenler artık pek database tarafınla ilgilenmeyebilirler. bir süre sonra hangi kolon hangi değişkene denk geliyor kodu yazan kişi tarafından bilinmez olmaya başlar.

özellike windows da uygulama geliştirirlip linux de mysql e deploy yapılıyorsa %90 kolon ismi büyük küçük harf bağımsızlığıyla ilişkili problemler çıkabilir. çünkü genelde class isimlerimi ClassForDeve gibi büyük küçük harfler barındırıyordur ve bunlar aslında windows daki mysql de sorun çıkarmazken linuxde sorunlara sebep olucaktır.

en güzel ve basit çözüm hibernate.properties veya persistence.xml e aşağıdaki satırı girmek:

bu sayede oluşturulacak tablo ve kolon isimleri class_for_deve şeklinde olucaktır. buda ister linux ister windows mysql versiyonu bağımsız çalışacaktır.

bir diğer çözümde her tablo ve kolon isminin java pojolarında @Column(name=”biseler”) veya @Table(name=”tablo1″) şeklinde verilmesidir. bu yöntem çok külfetli olucaktır.

windows 7 hibernate aktifleştirmek

  1. Command Prompt u administrator olarak açın ve powercfg /hibernate on. komutunu verin
  2. kontrol panelindeki Power Options dan “Change advanced power settings” i bulun açın
windows 7 hibernate açmak
windows 7 hibernate açmak

görüntüdeki gibi hybrid sleep i off yapın ve artık başlata baktığınızdada hibernate opsiyonunu göreceksiniz.

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.

Linux Hibernate

uzun zamandır sağlıksız olarak çalıştığını gördüğüm ayarlaması dert olan linuxdeki hibernate konusu ubuntu 7.10 ile tarih olmuşa benziyor. az evel hibernate ettiğim makine yaklaşık 25 saniyede açıldı 🙂

gerçi hibernate olurken bi kaç info bıraktı hiç bir arayüzde vermedi. ben önce sistem çatladı sandım makineyi açtım. grubuda ayarlamıştır şimdi pat diye linuxe atar sandım oda olmadı gayet doğal grub arayüzüm geldi. ordan ubuntuyu seçince açılış ekranı geldi progress bar ilerlemedi. ben yine çatladı dedim ama en sonunda monitor kapalı olarak açılış yaptı 🙂 nedendir bilmiom bu versiyon ubuntu X i açınca benim monitor bi kapanıo sonra dürtekleyince(herhangi bişeye basınca klavyeden) açılıyor.

en son login olunan kullanıcının şifresini istedi X ve pat KDE deyim.

en son 2005 de mandriva yada debianda kurcalamıştım bu konuyu o zaman kernel derleyip hede hödö ayarı yapınca sistemim çatlamıştı 🙂 bende uraşmadımdı bi daha. fakat ne zaman kursam aklıma gelince deniyordum artık güzel güzel çalışıyor huzurla kullanalım.