← Back to list

spring-data-jpa-repo-creator
by sivaprasadreddy
Java Application Development plugins for Claude Code
⭐ 42🍴 5📅 Jan 17, 2026
SKILL.md
name: spring-data-jpa-repo-creator description: Creates Spring Data JPA repositories following best practices.
Spring Data JPA Repository Creator
Instructions
The following are key principles to follow while creating Spring Data JPA Repositories:
- Make sure to create the recommended package structure for Spring Boot projects
- Create repositories only for aggregate roots
- Use
@Querywith JPQL for custom queries - Prefer meaningful method names over long Spring Data JPA finder methods
- Use constructor expressions or Projections for read operations
- Use default methods for convenience operations
Example: EventRepository
File: events/domain/EventRepository.java
interface EventRepository extends JpaRepository<EventEntity, EventId> {
@Query("""
SELECT e FROM EventEntity e
WHERE e.startDatetime > :now
ORDER BY e.startDatetime ASC
""")
List<EventEntity> findUpcomingEvents(@Param("now") Instant now);
@Query("""
SELECT e FROM EventEntity e
WHERE e.code = :code
""")
Optional<EventEntity> findByCode(@Param("code") EventCode code);
// Convenience methods using default interface methods
default EventEntity getByCode(EventCode eventCode) {
return this.findByCode(eventCode)
.orElseThrow(() -> new ResourceNotFoundException("Event not found with code: " + eventCode));
}
}
Enable JPA Auditing
Enable JPA Auditing support to automatically populate createdAt and updatedAt fields.
- Add
@CreatedDateand@LastModifiedDateannotations to yourBaseEntityclass. - Add
@EntityListeners(AuditingEntityListener.class)to yourBaseEntityclass. - Create a Spring
@Configurationclass and add@EnableJpaAuditingannotation.
package dev.sivalabs.meetup4j.shared;
import jakarta.persistence.Column;
import jakarta.persistence.EntityListeners;
import jakarta.persistence.MappedSuperclass;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.time.Instant;
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity {
@Column(name = "created_at", nullable = false, updatable = false)
@CreatedDate
protected Instant createdAt;
@Column(name = "updated_at", nullable = false)
@LastModifiedDate
protected Instant updatedAt;
// Getters and setters
}
Enable JPA Auditing in your application configuration:
@Configuration
@EnableJpaAuditing
public class JpaConfig {
}
Score
Total Score
45/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
○言語
プログラミング言語が設定されている
0/5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon