Ebean

Ebean is an object–relational mapping product written in Java. It is designed to be simpler to use and understand than JPA (Java Persistence API) or JDO (Java…

Ebean
Ebean
DeveloperAvaje
Stable release
13.25.1 / November 22, 2023; 2 years ago (2023-11-22)[1]
Written inJava
Operating systemCross-platform
PlatformJava
Size1.9 MB (archived)
TypeObject-relational mapping
LicenseApache License 2.0
Websiteebean-orm.github.io Edit this on Wikidata
Repository

Ebean is an object–relational mapping product written in Java. It is designed to be simpler to use and understand than JPA (Java Persistence API) or JDO (Java Data Objects) products.

Simple API

Ebean has a simpler API than JPA. It achieves this through its 'Session Less' architecture. Ebean does not require a JPA EntityManager or JDO PersistenceManager and this removes the concepts of detached/attached beans and the issues associated with flushing/clearing and 'session management' of EntityManagers. This adds up to make Ebean's API much easier to learn, understand and use.

Relational features

Although Ebean has full ORM features (equivalent to JPA) it also has incorporated 'SQL/Relational' features. The idea being that many development efforts require control over the exact sql, calling stored procedures or are more simply solved with 'Relational' approaches. The ultimate goal for Ebean is to combine the best ORM features from JPA with the best 'Relational' features from products like MyBatis into a single persistence framework.

Object–relational mapping

Ebean uses the same mapping as JPA with its @Entity, @Table, @OneToMany etc. annotations and xml. The mapping of Entity beans should be compatible between Ebean and JPA.

Going beyond JPA Ebean supports Java Generics and fetching "Partial" objects with its Query object.

Examples

// find customer by id
Customer customer = Ebean.find(Customer.class, 1);

//Saving the changes of the customer object
customer.save();

// more complex query with joins
List<Order> order =
   Ebean.find(Order.class)
    .fetch("customer")
    .fetch("customer.billingAddress")
    .fetch("customer.shippingAddress")
    .fetch("details")
    .fetch("details.product", "name")
    .where().eq("shipDate", today)
    .findList();

See also

References

  1. ^ "Releases · ebean-orm/ebean". github.com. Retrieved 2024-01-11.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.