{"id":13511834,"url":"https://github.com/ebean-orm/ebean","last_synced_at":"2025-12-17T23:05:22.453Z","repository":{"id":4648609,"uuid":"5793895","full_name":"ebean-orm/ebean","owner":"ebean-orm","description":"Ebean ORM","archived":false,"fork":false,"pushed_at":"2025-05-06T08:44:00.000Z","size":34831,"stargazers_count":1494,"open_issues_count":88,"forks_count":266,"subscribers_count":76,"default_branch":"master","last_synced_at":"2025-05-06T09:47:07.522Z","etag":null,"topics":["cockroachdb","database","ebean","elasticsearch","h2","hana","java","jdbc","jpa","kotlin","mariadb","mysql","oracle","orm","postgres","sql","sqlite","sqlserver"],"latest_commit_sha":null,"homepage":"https://ebean.io","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ebean-orm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":"https://ebean.io/sponsors"}},"created_at":"2012-09-13T11:49:56.000Z","updated_at":"2025-05-06T08:44:05.000Z","dependencies_parsed_at":"2023-10-11T11:37:05.229Z","dependency_job_id":"9c8d422f-668e-4403-aa0e-acdd258301a6","html_url":"https://github.com/ebean-orm/ebean","commit_stats":{"total_commits":6529,"total_committers":109,"mean_commits":59.89908256880734,"dds":"0.13554908868126814","last_synced_commit":"6d5f7403378e4b2be87518138c5ac29beb707cc4"},"previous_names":[],"tags_count":448,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebean-orm%2Febean","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebean-orm%2Febean/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebean-orm%2Febean/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebean-orm%2Febean/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebean-orm","download_url":"https://codeload.github.com/ebean-orm/ebean/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254101618,"owners_count":22014909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cockroachdb","database","ebean","elasticsearch","h2","hana","java","jdbc","jpa","kotlin","mariadb","mysql","oracle","orm","postgres","sql","sqlite","sqlserver"],"created_at":"2024-08-01T03:01:13.020Z","updated_at":"2025-12-17T23:05:22.392Z","avatar_url":"https://github.com/ebean-orm.png","language":"Java","readme":"\n[![Build](https://github.com/ebean-orm/ebean/actions/workflows/build.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/build.yml)\n[![Maven Central : ebean](https://maven-badges.herokuapp.com/maven-central/io.ebean/ebean/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.ebean/ebean)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/ebean-orm/ebean/blob/master/LICENSE)\n[![Multi-JDK Build](https://github.com/ebean-orm/ebean/actions/workflows/multi-jdk-build.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/multi-jdk-build.yml)\n\n##### Build with database platforms\n[![H2Database](https://github.com/ebean-orm/ebean/actions/workflows/h2database.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/h2database.yml)\n[![Postgres](https://github.com/ebean-orm/ebean/actions/workflows/postgres.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/postgres.yml)\n[![MySql](https://github.com/ebean-orm/ebean/actions/workflows/mysql.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/mysql.yml)\n[![MariaDB](https://github.com/ebean-orm/ebean/actions/workflows/mariadb.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/mariadb.yml)\n[![Oracle](https://github.com/ebean-orm/ebean/actions/workflows/oracle.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/oracle.yml)\n[![SqlServer](https://github.com/ebean-orm/ebean/actions/workflows/sqlserver.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/sqlserver.yml)\n[![DB2 LUW](https://github.com/ebean-orm/ebean/actions/workflows/db2luw.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/db2luw.yml)\n[![Yugabyte](https://github.com/ebean-orm/ebean/actions/workflows/yugabyte.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/yugabyte.yml)\n\n##### Build with Java Early Access versions\n[![ebean EA](https://github.com/ebean-orm/ebean/actions/workflows/jdk-ea.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/jdk-ea.yml)\n[![datasource EA](https://github.com/ebean-orm/ebean-datasource/actions/workflows/jdk-ea.yml/badge.svg)](https://github.com/ebean-orm/ebean-datasource/actions/workflows/jdk-ea.yml)\n[![migration EA](https://github.com/ebean-orm/ebean-migration/actions/workflows/jdk-ea.yml/badge.svg)](https://github.com/ebean-orm/ebean-migration/actions/workflows/jdk-ea.yml)\n[![test-docker EA](https://github.com/ebean-orm/ebean-test-docker/actions/workflows/jdk-ea.yml/badge.svg)](https://github.com/ebean-orm/ebean-test-docker/actions/workflows/jdk-ea.yml)\n[![ebean-agent EA](https://github.com/ebean-orm/ebean-agent/actions/workflows/jdk-ea.yml/badge.svg)](https://github.com/ebean-orm/ebean-agent/actions/workflows/jdk-ea.yml)\n\n----------------------\n\n# Ebean ORM for Java \u0026 Kotlin\n\n**Multiple abstraction levels**: Ebean provides multiple levels of query abstraction [ORM Queries, mixed with SQL](https://ebean.io/docs/intro/queries/orm-query), [DTO Queries](https://ebean.io/docs/intro/queries/dto-query), [SqlQuery and JDBC](https://ebean.io/docs/intro/queries/sql-query).\nWork at the highest level of abstraction and drop down levels as needed.\n\n**Database migrations**: Built in [DB migration](https://ebean.io/docs/db-migrations/) generation and running. Support for \"rebase\" migrations as well as repeatable, init and 'normal' migrations.\n\n**Awesome SQL**: Ebean produces SQL that you would hand craft yourself. Use great SQL, never generate SQL cartesian product, always honor relational limit/offset.\n\n**Automated query tuning**: For ORM queries Ebean can profile the object graph being used and either [automatically tune the query](https://ebean.io/docs/query/background/autotune).\n\n**Docker test containers**: [Docker test containers](https://ebean.io/docs/testing/) for all the supported databases. Get 100% test coverage on all the features of the database we use.\n\n**Type safe queries**: We can build queries using type safe [query beans](https://ebean.io/docs/query/query-beans). IDE auto-complete when writing queries, compile time checking and it's FUN.\n\n**Performance isn't optional**: Optimise queries to only fetch what we need (partial objects). Automatically avoid N+1 via a smart load context.\n\n#### Benefits of ORM\n\n* Automatically avoid N+1\n* L2 caching to reduce database load\n* Queries mixing database and L2 cache\n* Automatically tune ORM queries\n* Elasticsearch for search or L3 cache\n\n\n----------------------\n# Sponsors\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"middle\"\u003e\n        \u003ca href=\"https://www.foconis.de/\" target=\"_blank\"\u003e\n          \u003cimg width=\"222px\" src=\"https://group.foconis.com/download/ci/logo/png-72dpi/logo-quer/foconis-analytics-quer.png\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"middle\"\u003e\n        \u003ca href=\"https://www.premium-minds.com\" target=\"_blank\"\u003e\n          \u003cimg width=\"222px\" src=\"https://ebean.io/images/logo-med-principal.png\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"middle\"\u003e\n        \u003ca href=\"https://timerbee.de\" target=\"_blank\"\u003e\n          \u003cimg width=\"222px\" src=\"https://ebean.io/images/logo-timerbee.png\"\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n## Need help?\nPost questions or issues to the [Ebean google group](https://groups.google.com/forum/#!forum/ebean)\nor [github discussions](https://github.com/ebean-orm/ebean/discussions)\n\n## Documentation\nGoto [https://ebean.io/docs/](https://ebean.io/docs/)\n\n## Maven central\n[Maven central - g:io.ebean](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22io.ebean%22%20)\n\n## Building Ebean from source\n\n- JDK 11 or higher installed\n- Maven installed\n- `git clone git@github.com:ebean-orm/ebean.git`\n- `mvn clean install`\n\nEbean 13 uses Java modules with module-info. This means that there are stricter compilation\nrules in place now than when building with classpath pre version 13.\n\nFor Maven Surefire testing we use `\u003csurefire.useModulePath\u003efalse\u003c/surefire.useModulePath\u003e` such\nthat tests run using classpath and not module-path. We are doing this until all the tooling\n(Maven, IDE) improves in the area of testing with module-info.\n\n#### Eclipse IDE\n\nRight now we can't use Eclipse IDE to build Ebean and run its tests due to its poor support\nfor java modules. See [ebean/issues/2653](https://github.com/ebean-orm/ebean/issues/2653)\n\nThe current recommendation is to use IntelliJ IDEA as the IDE to build and hack Ebean.\n\n\n#### IntelliJ IDEA\n\nWe want to get IntelliJ to run tests using classpath similar to Maven Surefire. To do this set:\n`JUnit -\u003e modify options -\u003e Do not use module-path option`\n\nTo set this option as the global default for IntelliJ use:\n\n`Run - Edit Configurations -\u003e Edit configuration templates -\u003e JUnit -\u003e modify options - Do not use module-path option`\n\n\nend\n","funding_links":["https://ebean.io/sponsors"],"categories":["Java","数据库开发"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febean-orm%2Febean","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febean-orm%2Febean","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febean-orm%2Febean/lists"}