-
Notifications
You must be signed in to change notification settings - Fork 1
Home
JPO is an extremely lightweight pojo persistent layer. It permits to persist plain java bean to DB tables in a easy and natural way.
JPO main job is to map Plain Old Java Objects to db tables. There are no stateful entities or object life cycles.
JPO generates the needed SQL code based on the bean structure and offers a simple API to perform basic CRUD actions and complex SQL queries.
JPO is not a replacement for JPA or Hibernate-like technologies. Lovers of such a tools should stay with them. On the contrary, it tries to fill the gap between the too low level db interactions based on manual SQL writing and the too high level db interactions technologies (e.g. JPA) that completely hide the detail of what is happening under the hood. In addition, when used together with the vertx-mysql-postgresql-client, it offers a full non-blocking stack for a pure reactive experience.
JPO has two main flavours:
- JPO-RX: the NON-BLOCKING fashion of JPO;
- JPO-RM: the old good JPO baby that's powering many of our projects in production.
Reactive programming is progressively ruling the world. The current DB persistence solutions are natively blocking. JPO brings non-blocking programming to the database persistence world. Have a look at the non-blocking API:
Have you ever used Vertx? You should not try it if are afraid of falling in love with it! JPO-RX integrates natively with Vertx3 to reach incredible performance levels! Check out how to configure JPO with Vertx3 here:
JPO-RM can use the excellent Spring JdbcTemplate as db access provider. When configured this way, all Spring annotations (e.g. @Transactional, etc...) apply to JPO itself. Know more about JPO and Spring here: