Bir önceki yazımda JDL dili içerisinde application tanımlamasından bahsetmiştim bu yazı boyunca jhipster üzerinde JDL dili kullanarak entitylerimizin nasıl tanımlanacağı ve nasıl kullanılacağına dair bilgiler vermeye çalışacağım. Entity tanımlaması için 4 farklı yapıdan bahsetmemiz mümkün bunların bazılarını zorunlu olarak, bazılarını ise opsiyonel olarak girmek durumundayız. Yazı boyunca bu değişken ve yapıların örnekleri ve seçeneklerine değineceğim.
JDL dili üzerinde basit bir entitiy tanımlaması yapmak için entity <entity Ismi> yapmamız yeterli bu özellikleri olmayan basit bir tablo yaratıcaktır. Tabii kide böyle bir kullanım biraz amaçsız ve gereksiz gibi durmakta, süslü parentezleri kullanarak bu entity içerisinde kullanacağımız değişken tipleri, değişken isimleri ve eğer girmek istiyorsak validation(onaylama) koşullarını girebilmekteyiz.
Jhipster tarafından otomatik olarak Primary Key sütünü üretilmektedir. Bu yüzden ekstra bir tanımlamaya gerek yoktur fakat, birden fazla sütünü primary key olarak kullanmak istiyen yazılımcılar, generate edilen kodu editleyip değiştirmek zorundadırlar.
Aşağıda https://www.jhipster.tech/jdl/ adresinde verilmiş olan örneği inceliyelim C isimli field(alan)ları olmayan bir entity ve sırasıyla name, adress ve age bölümleri girilmiş. Bunların hemen yanında ise verinin tipleri ve validation koşulları bulunmakta. Her veri tipi için farklı validation koşulları kullanılabilmektedir.
entity C entity D { name String required address String required maxlength(100) age Integer required min(18) }
Entity tanımlaması yapıldıktan sonra projemize import edersek, jhipster bizim için otomatik olarak, entity yapılarımızı oluşturacaktır. Aşağıda https://www.jhipster.tech/jdl/#annexes adresinde bulunan bir tabloyu vereceğim bu tablo üzerinden kullanabileceğimiz veri tiplerini ve bu veri tipleri için geçerli olan kullanabileceğimiz validation koşullarını görebileceksiniz.
Tabloda yer alan bilgiler cassandra ve Jhipster tarafından diğer desteklenen veri tabanı türleri olarak ayrılmış. Validation kısmında yer alan bilgilerin kullanımı zorunlu değildir ve istenilen hepsi kullanılabilir.
JDL Veri Türleri Ve Sabitler
Common databases | Cassandra | Validations |
String | String | required, minlength, maxlength, pattern, unique |
Integer | Integer | required, min, max, unique |
Long | Long | required, min, max, unique |
BigDecimal | BigDecimal | required, min, max, unique |
Float | Float | required, min, max, unique |
Double | Double | required, min, max, unique |
Enum | Yok | required, unique |
Boolean | Boolean | required, unique |
LocalDate | Yok | required, unique |
Yok | Date | required, unique |
ZonedDateTime | Yok | required, unique |
Yok | UUID | required, unique |
Blob | Yok | required, minbytes, maxbytes, unique |
AnyBlob | Yok | required, minbytes, maxbytes, unique |
ImageBlob | Yok | required, minbytes, maxbytes, unique |
TextBlob | Yok | required, unique |
Instant | Instant | required, unique |