Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best way to map JAXB to a database table

I have an inbound xml which I am mapping to JAXB objects using the xjc tool (to build the pojos)

I am wondering what the best approach is to map these objects to various tables.

An Object / Xml can map to multiple tables which rules hibernate out i think. As a basic solution I believe i need someway to annotate the fields in the objects maybe (via tags in the xsd? i dont know) to database column names.

Has anyone encountered this before?

Thanks

like image 698
Biscuit128 Avatar asked Mar 17 '17 16:03

Biscuit128


3 Answers

I guess you need Hyperjaxb3 that provides relational persistence for JAXB objects.

@lexicore is the author about this project.

like image 109
Xstian Avatar answered Oct 23 '22 17:10

Xstian


You can use an extension for xjc - hyperjaxb

  • hyperjaxb2 - Relational persistence for XML data, with JAXB and Hibernate.
  • hyperjaxb3 - Persistence layer for JAXB objects.

For this purpose, hyperjaxb3 will be preferable.

Here is link to some tutorial Generate JPA Java classes from XSD schema file using Maven

like image 3
catch23 Avatar answered Oct 23 '22 16:10

catch23


It's unclear what accordance between database schema and XML schema is. When there are too few generalizations and coherence between them then it's worst case, you need to couple XML and database by hands for every JAXB entity.

If there're good enough coherence and understandable rules you can try to write own code generator to create code of entities with JAXB and JPA annotations.

Also, try to look to an engine that supports both JAXB and JPA annotations out-of-box: EclipseLink.

like image 2
edwgiz Avatar answered Oct 23 '22 16:10

edwgiz