[JPA緊急学習(3)]フィールドとコラムマッピング
@Column(nullable = false)
private String name;
@Column(nullable = false)
private Double latitude;
@Column(nullable = false)
private Double longitude;
クラス内のこのような状況1. @Column
@Columnオブジェクトフィールドを表バーにマップします.
テーブル全体ではなく、実際のレポートにマッピングされます.
宣言後に指定できるその他の属性は、次のとおりです.
(1) name
(2) nullable
(3) unique
(4) columnDefinition
(5) length
(6) precision, scale
(2)~(6)はDDLにおける制約条件の意味である.
(2)デバッガが空であることを許可する.
not nullを指定すると、
@Column(nullable = false)
そうですか.(3)一意
UniqueConstraintsと同じですが、1つのコラムでのみ使用されます.
2つ以上のコラムがユニークキーになっている場合は、クライスレベル@Tableです.uniqueConstraintsを使用します.
(4)columnDefinitionは
コラムのドメイン名を直接指定
@Column(columnDefinition = "varchar(100) default 'EMPTY'")
private String data;
ではDDLクエリ文はdata varchar(100)default「EMPTY」になります.
(5)長さ
文字長制約.既定値は255です
(★★★★本にはこれだけしか書かれていませんが、255バイトか2バイト255個★★★★★を確認する必要があります)
Stringタイプでのみ使用
@column(length=400)
private String data;
これでDDLはdatavarchar(400)になります.2. @Enumerated
これはjavaでenumタイプをマッピングするときに使用します.
指定できる属性はORDINAL、STRINGです.
まずはSTRING
@Enumerated(EnumType.STRING)
private RoleType roleType;
言ったのに.member.setRoleType(RoleType.ADMIN)
そうすると、DBに文字ADMINが格納されます.つまり、アレンジ後はEnumTypeです.STRINGはenum名で文字を格納します.逆に、データベースに格納されているデータ量は、ORDINALよりも大きい.
3. @Temporal
日付タイプのマッピングに使用します.
@Temporal(TemporalType.DATE)
private Date data;
そうでなければ.@Temporal(TemporalType.TIME)
private Date time;
そうでなければ.@Temporal(TemporalType.TIMESTAMP)
private Date timestamp;
では実際にDDLはdate date,
time time,
タイムスタンプがタイムスタンプになります.
JavaのDateタイプは年月日で1分秒ですが、DBには日付(日付)、時間(時間)、タイムスタンプ(日付と時間)の3種類があります.
4. @Transient
これは、フィールドをマッピングしない場合に使用します.
だからDBに保存したり、クエリーしたりしません.
オブジェクトに値を一時的に保持するために使用します.
@Transient
private Integer temp;
5. @Access
これは、JPAがエンティティデータにアクセスする方法を指定します.
等級に達する.
@Entity
@Access(AccessType.FIELD)
public class Member {
@Id
private String id;
...
(1)フィールドアクセス
AccessType.FIELDはこのように指定します
フィールドに直接アクセスする方法.
フィールドはプライベートでもアクセスできます.
(2)Propertyアクセス
AccessType.PROPERTYはこのように指定します
訪問者(ゲスト)の使用方法.
@Accessを使用しない場合、@Idに基づく位置決定方法
@Idがフィールドにアタッチされている場合、AccessType.FIELDとなり、クライアントに貼るとAccessTypeです.PROPERTYになる
Reference
この問題について([JPA緊急学習(3)]フィールドとコラムマッピング), 我々は、より多くの情報をここで見つけました https://velog.io/@red_gunny/JPA-긴급-학습-3-필드와-칼럼-매핑テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol