I am using Spring JPA for database access. I am able to find examples such as findByName and countByName, for which I dont have to write any method implementation. I am hoping to find examples for delete a group of records based on some condition. Does Spring JPA support deleteByName-like delete? Any pointer is appreciated. Regards and thanks.
spring-bootを使った中での躓いたことや調べたことのメモです。 環境 java: 8 spring-boot: 2.0.1 spring-data-jpa: 2.0.7 前提 以下のEntityで考えます @Entity public class Entity { @Id private int Id; private String name; private int position; // Getter, Setter省略 } List<T> findAll(Sort sort) JpaRepositoryを継承したinterfaceを作成した時点でList<T> findAll(Sort sort)が定義されており、次のようにソートできます。 @Service public class EntityService { @Autowired EntityRepoistory e
Vlad Mihalcea, Steve Ebersole, Andrea Boriero, Gunnar Morling, Gail Badner, Chris Cranford, Emmanuel Bernard, Sanne Grinovero, Brett Meyer, Hardy Ferentschik, Gavin King, Christian Bauer, Max Rydahl Andersen, Karel Maesen, Radim Vansa, Louis Jacomet Working with both Object-Oriented software and Relational Databases can be cumbersome and time consuming. Development costs are significantly higher d
@OneToOneアノテーション @OneToManyと@ManyToOneアノテーション Callback系アノテーション @Where @OneToOneアノテーション UserとUserAttributeが1対1の関係を作成します。 @Entity public class User { private Long id; private String name; private UserAttribute attribute; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } publ
タイトルの通り、レコードの作成日時と更新日時を自動設定してみる。 article.setCreatedDatetime(new Date()); article.setUpdatedDatetime(new Date()); こういうのを都度書くのはバカバカしいのでJPAに自動的に設定されるようにします。 Table適当なテーブルを作ります。 $ mysql --version mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1 DROP TABLE article; CREATE TABLE IF NOT EXISTS article ( id INT(11) NOT NULL AUTO_INCREMENT, title VARCHAR(50) DEFAULT NULL, created
システムによって全テーブルに共通したカラムが存在することがあると思います。 (楽観ロック用のバージョニングカラムや登録日、更新日、登録者名、更新者名など) JPAのEntityクラスを作成するときに全Entityに同じ変数を作るのはイヤだったので、上位クラスを作ってまとめられないかな、と思って調べてみたらその方法がありました。 上位クラスに@Entityではなく@MappedSuperclassアノテーションをつけるだけです。 これだけで、上位クラスを継承したEntityクラスで共通カラムを使用することができました。 package jp.co.test.entity; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.M
@Data @Entity @EntityListeners(AuditingEntityListener.class) --(1) public class Vendor implements Serializable { @Id @Column(name="vendor_id") private int vendorId; @Column(name="vendor_name") private int vendorName; @CreatedBy --(2) @Column(name="created_by") private String createdBy; @CreatedDate --(3) @Column(name="created_on") private LocalTime createdOn; @LastModifiedBy --(2) @Column(name="up
JPAを深掘りするシリーズの応用編です。 前回はCriteria APIの基本と利点をご紹介しました。今回はCriteria APIの実戦的な機能をいろいろとご紹介します。 準備・エンティティクラスとメタモデルクラスのサンプル 次のようなエンティティクラスとメタモデルクラスが存在することを前提に進めていきます。 まずはUserエンティティクラスです。 package sandbox.entity; import javax.persistence.Column; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.per
Spring Data JPAには、Repositoryインターフェースに宣言されたメソッドを、その名前からクエリを生成して自動的に生成してくれるお便利機能があります。どんな命名規則があるのか分からなかったのでメモ。 基本的にはマニュアルの要約です。 環境 Java ・・・ jdk1.8 Spring Boot ・・・ 1.3.5-RELEASE DB ・・・ MySQL 5.7 構文 以下の3つの要素を規則に従って組み合わせたメソッド名をRepositoryインターフェースに宣言することで、自動実装が利用可能になります。 プレフィックス(find...By read...By query...By count...By get...By) キーワード フィールド名 以下のエンティティを例に使います。 @Entity public class Employee implements Ser
@Entityアノテーションと@Idアノテーション @Tableアノテーション @GeneratedValueアノテーション @Columnアノテーション @Transientアノテーション @MappedSuperclassアノテーション 次回は @Entityアノテーションと@Idアノテーション まずは、これが無いと始りません。@Entityは該当のクラスがエンティティであることを指定し、@Idはプライマリキーとなるプロパティかフィールドを指定します。 @Entity public class Customer { @Id private Long id; private String firstname; private String lastname; // ・・ } @Idは以下の様に指定することもできます。というかこっちの方が一般的か? @Id public Long getI
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く