{"adoption": {"forks": 236, "observed_at": "2026-08-28T04:03:51.694987+00:00", "stars": 1172}, "canonical_url": "https://ross.abutalabs.com/products/spring-jpa-best-practices", "card": {"archived": false, "artifact_type": "learning-resource", "description": ":octocat: spring-jpa best practices", "domain": ["backend", "web-development", "databases", "tutorials", "developer-tools"], "enriched": true, "function": ["orm", "web-framework", "testing", "documentation"], "health_score": 20, "homepage": null, "language": "Java", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["cheese10yun/spring-jpa-best-practices"], "name": "cheese10yun/spring-jpa-best-practices", "platform": ["jvm"], "pushed_at": "2023-07-02T15:53:02+00:00", "repo": "cheese10yun/spring-jpa-best-practices", "stars": 1172, "tags": ["spring-boot", "spring-data-jpa", "querydsl", "best-practices", "tutorial", "korean", "spring"], "topics": ["spring-boot", "jpa", "data-jpa", "best-practices"], "urls": [], "use_cases": ["learn spring data jpa best practices", "how to structure one-to-many relationships in jpa", "pagination api with querydsl example", "effective validation and exception handling in spring boot", "junit 5 setup for spring boot projects", "when to use jpa embedded types", "extend spring data repositories with querydsl"], "what_it_is": "A step-by-step tutorial repository demonstrating Spring Data JPA best practices in Java, covering entity mapping, validation, exception handling, pagination, and Querydsl repository extensions. Each step pairs example code with explanatory documentation written by the author.", "when_to_avoid": ["you need a production-ready library or framework to depend on", "you work outside the JVM/Spring ecosystem", "you cannot read Korean, since the documentation is primarily in Korean"], "when_to_choose": ["you are a Java/Spring developer learning idiomatic Spring Data JPA patterns", "you want worked examples with accompanying written explanations", "you need guidance on Querydsl integration and pagination"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/spring-jpa-best-practices", "repo": "cheese10yun/spring-jpa-best-practices", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:51.694987+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:28:26.188760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "011e1d2d62c2cf97e56adaebf7936f843493707ec90435d3a276bf7dbf92c94d", "fetched_at": "2026-08-28T04:03:51.694987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cheese10yun/spring-jpa-best-practices"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:51.694987+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:28:26.188760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "011e1d2d62c2cf97e56adaebf7936f843493707ec90435d3a276bf7dbf92c94d", "fetched_at": "2026-08-28T04:03:51.694987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cheese10yun/spring-jpa-best-practices"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:28:26.188760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "011e1d2d62c2cf97e56adaebf7936f843493707ec90435d3a276bf7dbf92c94d", "fetched_at": "2026-08-28T04:03:51.694987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cheese10yun/spring-jpa-best-practices"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:51.694987+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:51.694987+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:51.694987+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:28:26.188760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "011e1d2d62c2cf97e56adaebf7936f843493707ec90435d3a276bf7dbf92c94d", "fetched_at": "2026-08-28T04:03:51.694987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cheese10yun/spring-jpa-best-practices"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:51.694987+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:51.694987+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:28:26.188760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "011e1d2d62c2cf97e56adaebf7936f843493707ec90435d3a276bf7dbf92c94d", "fetched_at": "2026-08-28T04:03:51.694987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cheese10yun/spring-jpa-best-practices"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:51.694987+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:51.694987+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:51.694987+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:28:26.188760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "011e1d2d62c2cf97e56adaebf7936f843493707ec90435d3a276bf7dbf92c94d", "fetched_at": "2026-08-28T04:03:51.694987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cheese10yun/spring-jpa-best-practices"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:51.694987+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:51.694987+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:28:26.188760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "011e1d2d62c2cf97e56adaebf7936f843493707ec90435d3a276bf7dbf92c94d", "fetched_at": "2026-08-28T04:03:51.694987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cheese10yun/spring-jpa-best-practices"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:28:26.188760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "011e1d2d62c2cf97e56adaebf7936f843493707ec90435d3a276bf7dbf92c94d", "fetched_at": "2026-08-28T04:03:51.694987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cheese10yun/spring-jpa-best-practices"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:28:26.188760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "011e1d2d62c2cf97e56adaebf7936f843493707ec90435d3a276bf7dbf92c94d", "fetched_at": "2026-08-28T04:03:51.694987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cheese10yun/spring-jpa-best-practices"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:28:26.188760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "011e1d2d62c2cf97e56adaebf7936f843493707ec90435d3a276bf7dbf92c94d", "fetched_at": "2026-08-28T04:03:51.694987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cheese10yun/spring-jpa-best-practices"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3056, "days_push": 1158, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}