Domaを書く時に用意する最低限3ファイルの具体例
Domaでデータアクセスするのに必要なのは以下の3ファイル
- エンティティ
- Daoインターフェース
- SQLテンプレート
1. エンティティ(User.java)
データベースのデータ本体を表すクラス
@Table(name = "users")
@Entity
@Getter
@Setter
public class User extends DomaDtoImopl{
private static final long serialVersionUID = 123456789123456L
@OriginalStates
User originalstates;
@Id
@Column(name ="user_id")
@GenerateValue(strategy = GenerationType.IDENTITY)
Long id;
String password;
String firstName;
String lastName;
}
メモ
@OriginalStatesの役割
→更新したいカラムだけ更新する
そもそも、Domaを使用したUPDAT文は以下の操作でレコードを更新する。
①updateしたいレコードをselect(自動生成)でEntityクラスに全カラム取る (レコード数は1件)
②①で取得したEntityクラスの中でupdateしたいカラムのみ変更する
③変更後のEntityクラスをupdateの引数にわたして実行
この時、更新されていない項目もSETの項目には入っていて、同じ値で上書きすることになる。
しかし、@OriginalStatesの記述を最初のところに書いておけば、差分だけ更新してくれる。つまり、同じ値だからわざわざ更新する必要のない項目をSETの中には含めない。
2. Daoインターフェース(UserDao.java)
@ConfigureAutowireable
@Dao
public interface UserDao {
//ユーザーを一件取得する
@Select
Optional<User> selectById(Long Id);
//ユーザーを登録する
@Insert
int insert(User user);
//ユーザーを更新する
@Update
int update(User user);
}
3. SQLテンプレート(select.sql)
SELECT
id
,password
,firstName
,lastName
FROM
users
メモ ~ファイルの置き場所とファイル名~
「src/main/resources/META-INF」の配下にDaoインターフェースと同じパッケージ構成になるように配置
ファイル名はDaoインターフェースに定義したメソッド名として、拡張子は.sqlとする
Author And Source
この問題について(Domaを書く時に用意する最低限3ファイルの具体例), 我々は、より多くの情報をここで見つけました https://qiita.com/yoda_sou/items/13ce328f7b612cc3ec79著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .