EVET. Yalnız değişikliklerde dikkat etmen gereken bazı şeyler var.
1-enum (string) olarak belirlediğiniz bir alanda bulunabilecek değerleri
değiştirmek zordur. hibernate enum değerleri dışında bir değeri tabloda
görmek istemez, önceki verilerin enum değeri ile bundan sonraki verilerin
enum değerleri alakalı olmalı. yani;
enum yas {
cocuk,
genc,
olgun,
yasli
}
gibi bir enum kullanırsanız bir kolonda, sonradan bu kolonun kabul edeceği
enum değerleri şudur,
enum yas {
cocuk,
genc,
yasli
}
diyemezsiniz, hibernate burda size şunu sorar "*olgun* isimli bir değer
vardı, nerede o şimdi"
fakat enum saklama data tipi STRING ise şunu kabul eder (ORDINAL kullanırsan
bu da sıkıntı olacaktır)
enum yas {
*bebek,*
cocuk,
genc,
olgun,
yasli
}
kısacası, enum alanlar için değişiklikler DEĞERLER nedeni ile sıkıntı
çıkarabilir
2-Sayısal/Alfasayısal/Tarihsel alanlarda, alan genişliğini arttırmanın bir
sakıncası yok
3-customerName isimli bir alanınız olsun, bu alanın adı artık cusName olacak
ise, hibernate eski kolonu silmeden yenisini ekleyecektir, yani tablonuzda
hem customerName alanı hem de cusName alanı olacaktır, bunu sizin elle
silmeniz gerekir.
4-daha önceden ManyToOne olarak işaretlediğiniz fk ları artık fk değil de
normal long alan olarak kullmak istediğinizde de, hibernate fk ilişkisini
kaldıracaktır.
Bazı şemasal değişikliklerde veritabanları arasında farklılıklar olabiliyor,
misal;
*hibernate.hbm2ddl.auto* değerini *create* seçmemize rağmen mysql de
sıfırdan db oluşmazken, hsqldb de oluşmakta
Şunu da belirtmek isterim ki; hibernate (dolayısı ise jpa) nın amacı sadece
ve sadece CRUD işlemleridir, fazlasını beklememek lazım.
04 Kasım 2010 08:56 tarihinde Alper KANAT <[email protected]> yazdı:
> Merhaba,
>
> Cevabınız için teşekkür ederim. Peki varolan kolonu değiştirmeyi ya da
> silmeyi denediniz mi?
>
> ---
> Quis custodiet ipsos custodes?
>
>
> 04 Kasım 2010 08:33 tarihinde M.Dumlupinar <[email protected]> yazdı:
>
> Merhaba,
>>
>> Ben Hibernate implementasyonunu kullanıyorum ve projemin jpaProperties
>> kısmındaki
>>
>> <prop key="*hibernate.hbm2ddl.auto*">update</prop>
>>
>> ibaresi ile veritabanındaki şema değişiklikleri ile ilgili herhangi bir
>> sıkıntı yaşamıyorum. Model sınıfımdaki kolon ekleme lerim otomatik olarak
>> veritabanına yanısıyor.
>>
>> 03 Kasım 2010 16:16 tarihinde Alper KANAT <[email protected]> yazdı:
>>
>>> Merhaba,
>>>
>>> Yaptığım projede tutmak istediğim verileri Entity sınıfları şeklinde
>>> modelleyip JPA ile veritabanına yazmayı düşünüyorum. Bu noktada aklıma
>>> django'da da sık sık karşılaştığım bir sorun geldi. Proje gerçek ortama
>>> çıktığında, modellerde değişiklik yapmak istersek bunu yapmanın kolay bir
>>> yolu var mı? Yoksa veritabanı tarafında elle mi yapılması gerekiyor?
>>>
>>> Teşekkürler, iyi çalışmalar..
>>>
>>> ---
>>> Quis custodiet ipsos custodes?
>>>
>>> _______________________________________________
>>> Linux-programlama mailing list
>>> [email protected]
>>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>
>>>
>>
>> _______________________________________________
>> Linux-programlama mailing list
>> [email protected]
>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>
>>
>
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
>
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php