3. data-Spring Combat 5th Editionの処理


この章の内容は次のとおりです。

  • SpringのJdbcTemplateを使用します。
  • SimpleJdbcTemplateを使用してデータを挿入します。
  • SpringデータでJPAリポジトリーを宣言します。

2.春のデータ

Spring Dataプロジェクトには、次のプロジェクトが含まれます。

  • 春のデータJPA、これはリレーショナルデータベース用です。
  • 春のデータMongoDB、これはMongoドキュメントデータベース用です。
  • 春のデータNeo4j、これはNeo4jグラフデータベース用です。
  • 春のデータCassandra、これはCassandraデータベース用です。

2.1 Spring Data JPAをプロジェクトに追加する

次の依存関係を追加します。

	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-data-jpa</artifactId>
	</dependency>

デフォルトはHibernateです。他の実装に変更する必要がある場合は、以下を実行できます。

	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-data-jpa</artifactId>
		<exclusions>
			<exclusion>
				<artifactId>hibernate-entitymanager</artifactId>
				<groupId>org.hibernate</groupId>
			</exclusion>
		</exclusions>
	</dependency>
	<dependency>
		<groupId>org.eclipse.persistence</groupId>
		<artifactId>eclipselink</artifactId>
		<version>2.5.2</version>
	</dependency>

2.2エンティティのステートメント

package tacos;
import javax.persistence.Entity;
import javax.persistence.Id;
import lombok.AccessLevel;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;

@Data
@RequiredArgsConstructor
@NoArgsConstructor(access=AccessLevel.PRIVATE, force=true)
@Entity
public class Ingredient {
  
  @Id
  private final String id;
  private final String name;
  private final Type type;
  
  public static enum Type {
    WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE
  }

}

@Entityと@Idを追加します。
アノテーション@ NoArgsConstructor、JPAは2次メソッドを使用したくないため、パラメーターなしのコンストラクターを必要とするため、privateに設定します。

2.3 JPAリポジトリを宣言する

CrudRepositoryを継承するだけです。

package tacos.data;

import org.springframework.data.repository.CrudRepository;

import tacos.Ingredient;

public interface IngredientRepository extends CrudRepository<Ingredient, String> {

}

2.4カスタムJPAリポジトリ

例:

List<Order> findByDeliveryZip(String deliveryZip);

Spring Dataは、ドメイン固有言語(DSL)メカニズムを使用してメソッドシグネチャを解決します。

List<Order> readOrdersByDeliveryZipAndPlacedAtBetween(
String deliveryZip, Date startDate, Date endDate);

ここに画像の説明を挿入
次の例もあり
ここに画像の説明を挿入
ここに画像の説明を挿入
ます。complexは@Queryを使用できます。

@Query("Order o where o.deliveryCity='Seattle'")
List<Order> readOrdersDeliveredInSeattle();
97件の元の記事を公開 賞賛3 10,000+ビュー

おすすめ

転載: blog.csdn.net/qq_39530821/article/details/103788788