フィールドとカラムのマッピング



リファレンス
  • 金英漢インフラ講座-Java ORM標準JPAプログラミング-基本編
  • Java ORM標準JPAプログラミング
  • 要件の追加

  • 会員は一般会員と管理者に区分されるべきである.
  • 会員加入日と修正日が必要です.
  • 会員を説明できるフィールドがあるはずです.この場所は距離制限がない.
  • @Entity
    public class Member {
    
        @Id
        private Long id;
    
        @Column(name = "name")
        private String username;
    
        private Integer age;
    
        @Enumerated(EnumType.STRING)
        private RoleType roleType;
    
        @Temporal(TemporalType.TIMESTAMP)
        private Date createdDate;
    
        @Temporal(TemporalType.TIMESTAMP)
        private Date lastModifiedDate;
    
        @Lob
        private String description;
    
        public Member() {
        }
    
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public RoleType getRoleType() {
            return roleType;
        }
    
        public void setRoleType(RoleType roleType) {
            this.roleType = roleType;
        }
    
        public Date getCreatedDate() {
            return createdDate;
        }
    
        public void setCreatedDate(Date createdDate) {
            this.createdDate = createdDate;
        }
    
        public Date getLastModifiedDate() {
            return lastModifiedDate;
        }
    
        public void setLastModifiedDate(Date lastModifiedDate) {
            this.lastModifiedDate = lastModifiedDate;
        }
    
        public String getDescription() {
            return description;
        }
    
        public void setDescription(String description) {
            this.description = description;
        }
    }

    マッピング宣言のクリア

  • テーブルまたはエンティティマッピングは特にないように見えますが、フィールドおよび列の状況は多様です.
  • hibernate.hbm2ddl.auto
  • 名前付き説明Column Column ColumnマッピングTemporal日付タイプマッピング(DATE、TIME、TIMESTAMPのいずれかをvalue値として指定する必要があります)@「顧客名タイプマッピング@Lob文字タイプ」と宣言した場合、CLOBはデータベースに追加されます.BLOB@Transient特定のフィールドをカラムにマッピングしない(マッピングを無視)

    @Column


    プロパティの説明デフォルトのnameフィールドとマッピングするテーブル内のカラム名オブジェクトのフィールド名を挿入、更新、変更、FALSEに保持、絶対登録、TRUENellable(DDL)null値を変更できないように設定します.falseに設定すると、DDLの生成時にnotnull制約が付加されます.共通のプロパティ!Unique(DDL)はよく使われません.なぜなら、クエリーが自動的に生成される場合、一意の制約条件を太い数値に変更すると、後で判別しにくいからです.したがって,@TableのuniqueConstraintsと同様であるが,1つの列に特殊な制約条件を簡単に設定する場合に用いる.columnDefinition(DDL)データベース列情報を直接提供できます.ex)varchar(100)default「EMPTY」フィールドのjavaタイプと方言情報は、長さ(DDL)文字長制約条件、Stringタイプに使用されます.255精度、scale(DDL)BigDecimalタイプで使用されます(BigIntegerも使用可能).精度は小数点を含む全桁数,scaleは小数点数である.参考までにdouble、floatタイプには適用されません.非常に大きな数値または正確な小数点を処理する必要がある場合にのみ使用します.precision=19, scale=2

    @Enumerated

  • javaenumタイプをマッピングする場合は
  • を使用します.
    ORDINALの9879172州X を使用
    属性摘要デフォルト・EnumType.ORDINAL:enumシーケンスは、データベース・EnumTypeに格納されます.STRING:enum名をデータベースEnumTypeに保存します.ORDINAL

    @Temporal


    マッピング
  • 日付タイプ(java.util.Date,java.util.Calendar)では
  • を使用します.
  • を参照:LocalDate、LocalDateTimeを使用する場合は省略可能(最新のHypernetサポート)
  • 属性説明デフォルト・TemporalType.DATE:日付、データベースの日付タイプ、マッピング(2013-10-11など)•TemporalType.TIME:時間、データベース時間タイプ、マッピング(11:11など)•TemporalType.TIMESTAMP:日付と時刻、データベースのタイムスタンプのタイプとマッピング(2013-10-11 11:11など)

    @Lob

  • データベースBLOB、CLOBタイプマッピング
  • @Lobには指定できる属性がありません.
  • マッピングのフィールドタイプは、文字マッピングCLOBであり、残りはBLOBである
  • CLOB: String, char[], java.sql.CLOB
  • BLOB: byte[], java.sql. BLOB
  • @Transient

  • フィールドマッピングX
  • データベースに格納X、クエリーX
  • は、主にメモリに一時的に値を保持する場合にのみ使用されます.
    @Transient
    private Integer temp;