バックエンドのjpa学習

2481 ワード

この任务を受け取って、正直に言うとゼロ基础の私の圧力はとても大きくてとても紧张して、どこから手をつけることを知らないで、多くのものはすべて见えない内容で、翻訳官が翻訳する必要があるようで、どのように笔を动かして书くことを知らないで、今日この1つの平日见るjpaの心得を书いて、もし不完全なことがあるならば、见たいのは多く指摘します.(jpaを見ているとユニットテストのコーナーが全く読めなかったので、あとで言うしかありません)
エンティティbeanの作成
このことは、個人的に理解しています.テーブルを作成しました.このテーブルを作成する方法は、実は私がモデルを作成しました.方法は宣言です.例えば、personモデルを作成しました.彼をマッピングエンティティにしたいと思っています.データベースのテーブルの方法です.
@Entity
@Table(name="demo")
public class person{
}

エンティティを作成し、そのエンティティに対してdemoというテーブルを作成します.
エンティティに対する属性寸法:フィールドに寸法を付けることも、属性のgetメソッドに寸法を付けることもできます.一般的には、例のように後者を参照します.
@Id
@column(name="todoid_",length=10,nullable=false)
@GeneratedValue(strategy=GenerateType.auto)
public String getId(){}

ここでの意味は1.このidはプライマリキー2である.このidのフィールド名は「todoid」で、長さは10で、空ではありません.数値ポリシーは、4種類あります:Auto,Identity,Sequence,Table identity:データの自己成長方式は、1,2,3,4,5,6からこのようにsequenceをインクリメントする:シーケンス化、IDの自己成長をサポートしないoracleデータベース用table:テーブル方式生成コンポーネントのauto:特に指さないと、システムにポリシーを自己生成し、上記の3つのオプションの中で選択させます
日付の設定--タイムスタンプ
@Temporal(temporaltype.DATE)
public Date getDate(){}

列挙の設定
列挙がlengthに設定されている場合-長(long)と短(short)に分けます.
@Enumerated(TYPE.String)

列挙タイプが文字型に設定されていることを示します
ストレージ容量が大きい場合
@Lob ->        
@Basice(fetch = fetchtype.late or early) ->      ,          
//       ,get/set    :    ,soure->Generate getter and setters
//             --           person         
private Set persons;

複数対1または複数の設定
@onetomany :    
  :mappedBy="xxxxxx"
  ,       ,           ,          ,       
@onetoone :    
(optional:false):       ,        

@cascade=(cascadeType.xxxxx)操作
.prsist:カスケード永続化操作(所有者エンティティを永続的に保存し、そのエンティティに関するデータも保存する).remove:カスケード削除操作(エンティティを削除すると、そのエンティティの関連データもすべて削除されます).mergeカスケード更新(マージ)操作(分離したエンティティの誠実さをアクティブな持続性コンテキストにマージする場合、そのエンティティ内のすべての関連データもマージする).refreshカスケードリフレッシュ操作(取得操作のみクエリー).allは以上のすべての操作を含む
@JoinColumn(name="idcard_id")ある属性に外部キーを設定することを意味するメソッドを書きます.フィールド名はidcard_です.id
@columnと@joinColumnの場合、nameを設定しない場合、デフォルトのルールは次のとおりです.
name=関連テーブルの名前+""+関連テーブルのプライマリ・キーの名前
たとえば、
@joinColumn(name="address_id" referencedColumnName="ref_id")

この説明ref_idが関連テーブルのプライマリ・キーではないこの文の意味は、テーブルの「address_id」フィールドに関連する「ref_id」属性referencedColumnName標準は関連テーブルのフィールド名であり、指定しない場合に使用する関連テーブルのプライマリ・キーフィールド名は外部キー@joinTable:関連テーブル