Giriş
Şu satırı dahil ederiz.
Normalde bu anotasyon alanlara yazılmasa da olur. Açıklaması şöyle
Şöyle yaparız.
Şu satırı dahil ederiz.
import javax.persistence.Column;
Column herhangi bir alanın veya getter metodun veritabanındaki hangi sütuna yazılacağını belirtir. JPA'nın temel ögelerinden biridir. Dolayısıyla kullanımını iyi anlamak gerekir.Normalde bu anotasyon alanlara yazılmasa da olur. Açıklaması şöyle
It is not "necessary", unless you want to override default column naming, or default datastore column type etc. And just putting @Column does nothing as such anywaycolumnDefinition Alanı
Veritabanı Java kodundan yaratılacaksa kullanılacak sütun tipini belirtir.
Örnek
Elimizde şöyle bir kod olsun
Şöyle yaparız.
Örnek
Elimizde şöyle bir kod olsun
@Entity
public class Something implements Serializable {
@Id
int id;
@Column
String name;
@Column(columnDefinition = "DEFAULT CURRENT_TIMESTAMP")
Instant datex;
//construct, setters, getters
}
Çıktı olarak şunu alırızCREATE TABLE something(
id INTEGER NOT NULL,
name VARCHAR(50) NOT NULL,
datex DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) ENGINE=InnoDB
ÖrnekŞöyle yaparız.
@Column(name = "optlock", columnDefinition = "integer DEFAULT 0",nullable = false)
private long version = 0L;
Örnek
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
@Lob
@Column(columnDefinition="bytea")
private byte[] data;
insertable AlanıŞöyle yaparız.
@Temporal(TemporalType.TIMESTAMP)
@Column(name="CREATED_ON", insertable= true, updatable=false)
private Date createdOn;
length Alanı
String için kullanılır. Şöyle yaparız.
@Column(nullable = false, length = 90)
private String descr;
name Alanı
Sanırım isimleri hep büyük harfle vermek gerekiyor.Şöyle yaparız.
@Column(name = "user_name", nullable=false )
private String userName;
nullable Alanı
@Column(unique = true, nullable = false)
private Integer id;
Çıktı olarak şunu alırızz
Şöyle yaparız. nullable ile beraber kullanmak mantıklı. Bu alan eğer tek satır unique yapılacaksa işe yarıyor. Birden fazla alan unique yapılacaksa @Index anotasyonunu kullanmak gerekir.CREATE TABLE `employees` (
`emp_no` int NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
PRIMARY KEY (`emp_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
unique@Column(unique = true, nullable = false)
private Integer id;
Hiç yorum yok:
Yorum Gönder