NoHibernate provides mapping of Hibernate managed entities in non-relational way. It is especially useful for storing in database interfaces with many different child classes, which is almost impossible with pure Hibernate.
repositories {
...
maven {
url 'https://jitpack.io'
}
}
dependencies {
...
compile("com.github.ppedrycz:nohibernate-core:0.2")
}
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.github.ppedrycz</groupId>
<artifactId>nohibernate-core</artifactId>
<version>0.2</version>
</dependency>
</dependencies>
public class MyApplication {
public static void main(String[] args) {
NoHibernateUtils.setClassLoader(MyApplication.class.getClassLoader());
/* rest of your code */
}
}
public class Geometry { /* fields, getters, setters */ }
public class Point extends Geometry { /* fields, getters, setters */ }
public class Rectangle extends Geometry { /* fields, getters, setters */ }
public class Circle extends Geometry { /* fields, getters, setters */ }
public class Square extends Geometry { /* fields, getters, setters */ }
public class Polygon extends Geometry { /* fields, getters, setters */ }
public class Triangle extends Geometry { /* fields, getters, setters */ }
@Entity
public class Sprite {
/* constructors, other fields, getters, setters */
@Type(type = NoHibernate.Type.BASIC)
private Geometry geometry;
}