Code Monkey home page Code Monkey logo

olingo-jpa-processor-v4's Introduction

Description

The JPA Processor shall fill the gap between Olingo V4 and the database if JPA is used for object-relational mapping.

At the current state the JPA Processor provide support for:

  1. Generating OData metadata from JPA metadata.
  2. Processing Get requests by converting them into Criteria Builder queries.
  3. Supporting entity manipulations.

More details can be found in the Tutorials.

Requirements

The JPA Processor requires, others than Olingo, minimum Java version 1.8. The current version comes with Olingo 4.4.0. If later versions of OLingo are available this may change.

Even so no JPA implementation is preferred, as long as it supports JSR-338 Java Persistence 2.1, it has to be stated that all test have been performed with Eclipselink 2.6.2. If you have any isusse with e.g. Hibernate create an issue in github.

Download and Installation

The JPA Processor is a collection of Maven projects. To use it you need to clone the repository, import the projects and declare a dependency to either the metadata generation only:

<dependency>
	<groupId>com.sap.olingo</groupId>
	<artifactId>odata-jpa-metadata</artifactId>
	<version>0.2.9-SNAPSHOT</version>
</dependency>

Or to the complete processor:

<dependency>
	<groupId>com.sap.olingo</groupId>
	<artifactId>odata-jpa-processor</artifactId>
	<version>0.2.9-SNAPSHOT</version>
</dependency>

Limitations

The project is still in the state of incubation, so some incompatible changes my come up, see To-Do. Nevertheless feel free to use the JPA processor where ever it helps.

How to obtain support

For bugs, questions and ideas for enhancement please open an issue in github.

To-Do (upcoming-changes)

The flowing extensions/changes are planned:

  • Content-ID handling in $batch requets
  • Enable hooks for retrieving data.
  • Support asynchronous requests
  • Parallel processing for $expand.
  • Enhancements on collection attributes.
  • Enable server side paging an $expand
  • Support of $ref

License

Copyright (c) 2017 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v.2 except as noted otherwise in the License file.

Release Notes

Build Status Coverage Status

Version Changes Incompatible Changes
0.2.4 - Switch to Olingo version 4.4.0
- Support of Enumeration Types
- Support of $count at $expand
Yes
0.2.6 - Solution for issue #21
- JPA Join tables can be used e.g. for Many To Many relationship (issue #22). If such relation shall be used in a filter a corresponding JPA entity is required, which can be hidden from the API using @EdmIgnore. Please be aware that in case both source and target are subtypes Eclipselink (version 2.7.1 used) may get confused when generating a subquery for filtering, see Bug 529565
No
0.2.7 - Solution for issue #29
- Solution for issue #35
- Solution for issue #37
No
0.2.8 - Support of Collection Properties
- New tutorials 1.7 Suppressing Elements and 1.13 Collection Properties
No
0.2.9 - Support on top level server driven paging
- New tutorial 4.3 Server Driven Paging
No

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.