HibernateにてDAOを生成-単一モデル

以下、プロジェクト構成でDAOを作成します。
今回はこのDBスキーマに対してモデルを作成します。
DBスキーマ:
 
プロジェクト構成:
  • entityがモデルクラスを格納するディレクトリ
  • repositoryがif定義クラスを格納するディレクトリ
 

src/main/java
└── com
    └── soulimpact
        └── soulmate
            ├── entity
            │   └── SMUser.java

            ├── service
            │   └── SMUserService
            └── repository
                └── SMUserRepository.java

クラス

SMUser.java

 
package com.soulimpact.soulmate.entity;

import lombok.Data;

import javax.persistence.*;
import javax.websocket.OnError;
import java.util.Date;
import java.util.UUID;

@Entity
@Data
@Table(name="users", schema="public")
public class SMUser {

   @Id
   @Column(name="user_id")
   private String userId;

   @Column(name="profile")
   private String profile;
   
   @Column(name="password")
   private String password;
   
   @Column(name="user_name")
   private String userName;

   @Column(name="department_id")
   private UUID departmentId;

   @Column(name="role_id")
   private UUID roleId;

   @Column(name="created_time")
   private Date createdTime;

   @Column(name="updated_time")
   private Date updatedTime;

   @Column(name="deleted_time")
   private Date deletedTime;

}

SMUserRepository.java

 
package com.soulimpact.soulmate.repository;

import com.soulimpact.soulmate.entity.SMUser;
import org.springframework.data.jpa.repository.JpaRepository;

public interface SMUserRepository extends JpaRepository<SMUser, String> {

}

実際の利用箇所(サービスクラス)

SMUserService.javaで利用します。

こちらでPKのuser_idを指定することで特定のuserエンティティが取得できます。

 
/**
 * ID検索
 * @param id
 * @return
 */
public SMUser findById(String id) {
   Optional<SMUser> user = userRepository.findById(id);
   if(!user.isEmpty()) {
      return user.get();
   }
   return null;
}