Skip to content

What is worm?

Paul edited this page Sep 7, 2023 · 2 revisions

Introduction

First of all, welcome to the documentation of worm! ❤️

worm is the abbreviation of Worthless Object Relation Mapper. It is a (yet another) ORM for Java that does not use JPA but is heavily inspired by it.

Capabilities and Limitations

In summary, worm offers the following capabilities:

  • Enrichment of existing data and model entities through database-related annotations.
  • Support for MySQL databases in production and an in-memory database for testing.
  • Provision of a JPA-like interface.
  • Handling of basic attributes, references to entities, and collections.

However, it's important to acknowledge the current limitations:

  • Exclusive support for MySQL and an in-memory database.
  • Limited support for collections, restricted to basic data types (i.e., you cannot store a collection of entities within another entity).

Frequently Asked Questions (FAQ)

In the following, frequently asked questions (i.e., questions I ask myself) are listed.

Q1: Why should I use worm?

That's the neat part: You shouldn't... unless you are developing a fun project with a simple use case and you are too lazy to implement the SQL stuff yourself. This ORM should not be used in any production environment due to the lack of features.

Q2: If it is not recommended to use, why does it exist?

I was curious about Spring Data's implementation of repository interfaces. You create an interface without an implementation, and after Spring magic happens, you can manipulate a database. That seemed pretty cool to me, so I tried to develop my own implementation.

Also, integrating Spring Data into smaller projects without Spring Boot and its configuration is not straightforward (at least for me). Therefore, I tried to come up with an easy-to-use and configurable solution.

Clone this wiki locally