Springで Javax.persistence はどのように定義するのか

Springでjavax.persistenceを使ってエンティティクラスを定義する際は、次のようなアノテーションを使用して、エンティティクラスとテーブルのマッピング関係を定義する必要があります。

  1. @Entity: JavaクラスをJPAエンティティクラスとしてマークします。
  2. テーブル:指定されたエンティティクラスとデータベーステーブルのマッピングの関係は、テーブル名、スキーマなどの属性を指定できます。
  3. @Id:主キーフィールドをマークするエンティティクラス
  4. GeneratedValue: 主キーフィールドの値をデータベースに自動生成させ、生成方式を指定することができます。
  5. @Column属性で、エンティティクラスのプロパティとデータベーステーブルのカラムのマッピング関係を指定できます。カラム名、長さ、NULL可否などのプロパティを指定できます。
  6. エンティティクラス同士の関係を定義するアノテーション。1対1、1対多、多対1、多対多といった関係を表すことができる。

次に、javax.persistenceを利用してエンティティクラスを定義する例を示します。

import javax.persistence.*;

@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "username", length = 50, nullable = false)
    private String username;

    @Column(name = "password", length = 50, nullable = false)
    private String password;

    // Getter和Setter方法省略
}

上記の例では、@EntityアノテーションによってUserクラスはJPAエンティティクラスとして識別され、@Tableアノテーションによってデータベースのテーブル”user”とのマッピングが指定されています。@IdアノテーションはIDフィールドをプライマリキーとして識別し、@GeneratedValueアノテーションでプライマリキーの生成戦略を指定しています。@Columnアノテーションはusernameとpasswordフィールドのデータベースのテーブルとのマッピングを指定しています。

bannerAds