The ORM support.
logo

ORM module of the UJO Framework

am easy to use implementation of the object-relation mapping
Why a new ORM mapping? Some other features:

A sample of use

See how to create database and to how to INSERT an order with two items into database:
  OrmHandler.getInstance().loadDatabase(Database.class);

  Order order = new Order();
  order.setDate(new Date());
  order.setDescr("John's order");

  Item item1 = new Item();
  item1.setOrder(order);
  item1.setDescr("Yellow table");

  Item item2 = new Item();
  item2.setOrder(order);
  item2.setDescr("Green window");

  Session session = OrmHandler.getInstance().getSession();
  session.save(order);
  session.save(item1);
  session.save(item2);

  session.commit();
            
The next source code calls a SELECT by the UJO Criteria:
  Criterion<Order> criter1 = Criterion.newInstance(Order.DESCR, "John's order");
  Criterion<Order> criter2 = Criterion.newInstance(Order.DATE, Operator.LE, new Date());
  Criterion<Order> criterion = criter1.and(criter2);

  Session session = OrmHandler.getInstance().getSession();
  UjoIterator<Order> orders = session.createQuery(criterion).iterate();
  System.out.println("ORDER COUNT: " + orders.count()); // method calls SQL SELECT COUNT(*) in case the iterator can provide first item!

  for (Order order : orders) {
      String descr = order.getDescr();
      System.out.println("ORDER ROW: " + order + " // descr: " + descr);
  }
            
The next source code calls a SELECT by an UJO object relation:
  Session session = OrmHandler.getInstance().getSession();
  Database db = session.getDatabase();
  UjoIterator<Order> orders = db.get(Database.ORDERS);

  for (Order order : orders) {
      String descr = order.getDescr();
      System.out.println("Order: " + order + " // descr: " + descr);

      for (Item item : order.getItems()) {
          Long itemId = item.getId();
          String itemDescr = item.getDescr();
          System.out.println(" Item id: " + itemId + " descr: " + itemDescr);
      }
  }
            

More sources:

License: