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; }