Comparison of JPA Providers and Issues with Migration

Total Page:16

File Type:pdf, Size:1020Kb

Comparison of JPA Providers and Issues with Migration MASARYKOVA UNIVERZITA FAKULTA}w¡¢£¤¥¦§¨ INFORMATIKY !"#$%&'()+,-./012345<yA| Comparison of JPA providers and issues with migration DIPLOMA THESIS Luk´aˇs Semberaˇ Brno, June 2012 Declaration Hereby I declare, that this paper is my original authorial work, which I have worked out by my own. All sources, references and literature used or excerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Luka´sˇ Semberaˇ Advisor: Jirˇ´ı Pechanec, Red Hat Czech, s.r.o. ii Acknowledgement I would like to thank my technical advisor Jirˇ´ı Pechanec from Red Hat Czech for his valuable comments and suggestions. I would also like to thank my fiancee´ Daria for her support during writing. iii Abstract This thesis aims to compare three implementations of the JPA stan- dard – specifically Hibernate, OpenJPA and EclipseLink. Except the comparison, it will also describe the migration processes of various real-world applications between those JPA implementation and doc- ument the issues that the developers might typically run into. The practical part involves developing an application which would provide a support when migrating projects between those three JPA providers. iv Keywords JPA, JPA2, Hibernate, OpenJPA, EclipseLink, Java, persistence, rela- tional, databases, Scala v Contents 1 Introduction ............................6 1.1 Database management systems ..............6 1.1.1 Relational databases................7 1.1.2 Object-oriented databases.............7 1.1.3 NoSQL databases..................8 1.2 Object-relational mismatch .................8 1.3 Brief history of Java persistence solutions ........9 1.3.1 JDBC.........................9 1.3.2 EJB 2.x entity beans................. 10 1.3.3 JDO.......................... 11 1.3.4 myBatis....................... 11 1.4 JPA .............................. 12 1.5 Goals of the thesis ...................... 12 2 Comparison of JPA providers .................. 13 2.1 Methodology of the comparison ............. 13 2.2 Identifier generation .................... 14 2.3 Performance ......................... 15 2.3.1 Batch inserts..................... 18 2.3.2 Searching by ID................... 18 2.3.3 Basic JPA QL test.................. 19 2.3.4 Basic criteria API test................ 19 2.3.5 Aggregate function................. 20 2.3.6 Performance summary............... 20 2.4 Type conversion ....................... 21 2.5 Caching support ....................... 22 2.6 Entity lifecycle and transactional events ......... 24 2.7 Schema generation ..................... 25 2.8 Support for stored procedures ............... 27 2.9 Integrating with other frameworks ............ 28 2.10 Licenses ........................... 29 2.11 Documentation quality ................... 30 2.12 Build systems ........................ 31 2.13 Summary ........................... 31 3 Experimental migration of JPA applications ......... 33 3.1 Migrating from Hibernate ................. 33 1 3.2 Migrating from OpenJPA .................. 35 3.3 Migrating from EclipseLink ................ 36 3.4 Migration summary ..................... 38 4 Automatic migration tool .................... 39 4.1 The application architecture ................ 39 4.2 Java source files parsing .................. 41 4.3 Ideas for a further development .............. 43 5 Conclusion ............................. 45 A Generated database schemas .................. 46 A.1 Hibernate ........................... 46 A.2 OpenJPA ........................... 48 A.3 EclipseLink .......................... 50 2 Listings 1.1 Sample of JDBC code....................9 2.1 DDL defining sample database schema......... 16 2.2 Sample stored procedure.................. 27 4.1 Recursively searching the abstract syntax tree for vendor- specific annotations using Scala pattern matching... 42 A.1 Hibernate-generated sample database schema..... 46 A.2 OpenJPA-generated sample database schema...... 48 A.3 EclipseLink-generated sample database schema.... 50 3 List of Figures 2.1 ER diagram of sample database schema 15 4.1 Class diagram of the migration application 44 4 List of Tables 2.1 Batch inserts on PostgreSQL test results 18 2.2 Batch inserts on MySQL test results 18 2.3 Find by ID test results 19 2.4 Fetch all users using JPA QL test results 19 2.5 Fetch all users using criteria API test results 19 2.6 Complex join using JPA QL test results 20 2.7 Complex join using criteria API test results 20 2.8 Feature matrix 31 5 1 Introduction Every application, except the most basic ones, has to deal with data. The very first computers were designed as black boxes receiving in- put, doing some calculations and producing output. Since then, com- puters have become much more complicated and nowadays they do much more than such simple data processing. Nevertheless, they still operate with data stored on some kind of a permanent storage de- vice, such as hard drive. Input data for an application could be saved, without much think- ing, into an ordinary text file. However, such files are next to impos- sible to machine process because they do not follow any rules which would describe their structure. For this reason, variety of rules the data have to follow are often introduced (e.g. the structure is de- scribed by XML with an appropriate XML Schema definition). Even if the data are in easily computer-readable form, the biggest problem with this “file-based” approach remains. It is still just a text file and, therefore, the data access is limited by I/O operations of the operating system. Demands of current enterprise applications, how- ever, go far beyond the possibilities of such file-based persistence. We require reliability, transaction management, high-performance con- current access, advanced user access control and much more. To sup- port all of these advanced features, database management systems have been invented. 1.1 Database management systems A database management system (DBMS), as defined in [1], is a soft- ware designed to assist in maintaining and utilizing large collections of data. Each DBMS has its model, which describes data, data rela- tionships, semantics and consistency constraints[2]. It is basically a theoretical foundation, upon which database management systems operate. During last few decades, several database models have been in- vented. In 1960, IBM introduced their database management system IMS, which internally uses hierarchical database model. Hierarchical model stores data in records, which are connected with each other 6 1. INTRODUCTION through links, creating tree-like structures [2]. An evolution of the hierarchical model is the network model, which allows records to be connected in arbitrary graphs and thus making data modelling mode flexible (e.g. allows many-to-many relationships between records). Even though hierarchical and network databases exist and are still in use1, the models have many flaws (further discussed in [4]), which make their usage in certain scenarios particularly complicated. 1.1.1 Relational databases In 1970, E. F. Codd published a revolutionary paper [5], where he laid out the concept of the relational data model, which is the theo- retical foundation of relational databases. For its flexibility2, simplic- ity and strong but simple formal background (which allows math- ematical reasoning about data) its popularity grew rapidly. A lot of both commercial and open-source implementations exist; they are very mature and industry-proven, relational model itself is very well understood and documented. For these reasons, relational databases basically mean an industry standard and their knowledge is essential for every programmer. 1.1.2 Object-oriented databases In last decade, under the influence of object oriented programming, the concept of object oriented (OODBMS) and object-relational data- base management (ORDBMS) systems has aroused. OODBMS allow object graphs to be stored to the database directly and are very of- ten integrated with the programming language itself. Thus, they pro- vide homogeneous environment and remove the necessity of various transformations when data are passed back and forth between ap- plication and data layer. Even though object oriented databases have undeniable benefits and advantages, their popularity is not very high. 1. Probably the best known hierarchical database is the Windows System Reg- istry [3] 2. By “flexibility” I mean the ability of the relational model to hide its inter- nal data representation. Clients thus do not need any knowledge, how data are physically stored and, therefore, are not affected when the server implementation changes. 7 1. INTRODUCTION Not only because of those enormous amounts data that are already stored in relational databases (and migration of which would not be cost free), but also because of some technical issues they are still fac- ing and which are still not yet resolved3. Moreover, vendors of rela- tional databases are integrating various object-oriented features into their products and thus are making the need for pure object-oriented databases less urgent. 1.1.3 NoSQL databases Recently, with the rise of interest in cloud computing, a new cate- gory or databases has occurred, so called NoSQL4 databases. NoSQL is neither a specific database model, nor an evolution of relational or object oriented databases, but it is rather a group of database prod- ucts which are suited to specific scenarios, often where other solu- tions fail. They often offer only a feature subset of relational data- bases, but they are superior in certain
Recommended publications
  • Hibernate ORM Query Simplication Using Hibernate
    2016 3rd National Foundation for Science and Technology Development Conference on Information and Computer Science Hibernate ORM Query Simplication Using Hibernate Criteria Extension (HCE) Kisman Sani M. Isa Master of Information Technology Master in Computer Science Bina Nusantara University Bina Nusantara University Jl. Kebon Jeruk Raya No. 27, Jakarta Barat, DKI Jl. Kebon Jeruk Raya No. 27, Jakarta Barat, DKI Jakarta, Indonesia 11530 Jakarta, Indonesia 11530 [email protected] [email protected] Abstract— Software development time is a critical issue interfaced by a query. The software engineer will make in software development process, hibernate has been the query specified to database used. Each database widely used to increase development speed. It is used in vendor has their Structured Query Language (SQL). As database manipulation layer. This research develops a the development of software technology and most of library to simplify hibernate criteria. The library that is programming languages are object oriented, some called as Hibernate Criteria Extension (HCE) provides API functions to simplify code and easily to be used. Query engineer or software institutions try to simplify the associations can be defined by using dot. The library will query process. They try to bind object in application to automatically detect the join association(s) based on database. This approach is called as Object Relational mapping in entity class. It can also be used in restriction Mapping (ORM). ORM is a translation mechanism from and order. HCE is a hibernate wrapper library. The object to relational data, vice versa. ORM has “dialect” configuration is based on hibernate configuration.
    [Show full text]
  • JPA Avancé » Licence
    Formation « JPA Avancé » Licence Cette formation vous est fournie sous licence Creative Commons AttributionNonCommercial- NoDerivatives 4.0 International (CC BY-NC-ND 4.0) Vous êtes libres de : ● Copier, distribuer et communiquer le matériel par tous moyens et sous tous formats Selon les conditions suivantes : ● Attribution : Vous devez créditer l'Oeuvre, intégrer un lien vers la licence et indiquer si des modifications ont été effectuées à l'Oeuvre. Vous devez indiquer ces informations par tous les moyens possibles mais vous ne pouvez pas suggérer que l'Offrant vous soutient ou soutient la façon dont vous avez utilisé son Oeuvre. ● Pas d’Utilisation Commerciale: Vous n'êtes pas autoriser à faire un usage commercial de cette Oeuvre, tout ou partie du matériel la composant. ● Pas de modifications: Dans le cas où vous effectuez un remix, que vous transformez, ou créez à partir du matériel composant l'Oeuvre originale, vous n'êtes pas autorisé à distribuer ou mettre à disposition l'Oeuvre modifiée. http://creativecommons.org/licenses/by-nc-nd/4.0/deed.fr Ippon Technologies © 2014 Ippon Formation en bref Pourquoi Ippon Technologies publie ses supports de formation ? Car Ippon participe à la communauté Java et Web et soutien le modèle open-source Le support théorique représente 40% du temps de formation, l'intérêt est dans les Travaux Pratiques et l'expert Ippon qui assure le cours. Nos TP sont dispensés lors des sessions de formations que nous proposons. Ippon Technologies © 2014 Pour nous contacter Pour nous contacter et participer à nos formations : - Technique : [email protected] - Commercial : [email protected] Toutes les informations et les dates de formations sont sur notre site internet et notre blog : - http://www.ippon.fr/formation - http://blog.ippon.fr Ippon Technologies © 2014 Bienvenue ● Présentation ● Organisation ● Détails pratiques Ippon Technologies © 2014 Prérequis ● Pour suivre le cours ○ Avoir de bonnes bases en Java : les JavaBeans, les Collections, JDBC..
    [Show full text]
  • Cloud-TM Companion Document For
    Cloud-TM Specific Targeted Research Project (STReP) Contract no. 257784 Companion document for deliverable D2.2: Preliminary Prototype of the RDSTM and RSS Date of preparation: 10 June 2010 Start date of project: 1 June 2010 Duration: 36 Months Contributors Emmanuel Bernard, Red Hat Joao Cachopo, INESC-ID Mark Little, Red Hat Francesco Quaglia, CINI Paolo Romano, INESC-ID Vittorio A. Ziparo, ALGORITHMICA Manik Surtani, Red Hat Sanne Grinovero, Red Hat Fabio Cottefoglie, ALGORITHMICA —————————————————— (C) 2010 Cloud-TM Consortium. Some rights reserved. This work is licensed under the Attribution-NonCommercial-NoDerivs 3.0 Creative Commons License. See http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode for details. Table of Contents 1 Introduction 4 1.1 Relationship with other deliverables . .4 2 Architectural Overview of the Cloud-TM Preliminary Prototype 6 2.1 TorqueBox . .6 2.2 Object Grid Mapper . .7 2.3 Reconfigurable Distributed STM and Storage System . .8 3 Setting up the prototype 10 3.1 Structure and Content of the Package . 10 3.2 Installing and running the prototype . 10 3.2.1 Hibernate OGM . 11 3.2.2 Fenix Framework . 12 4 Conclusions 13 3 1 Introduction This document accompanies Deliverable D2.2, Preliminary Prototype of the Cloud- TM platform. Its aim is to overview the current architecture of the prototype and to document how to set it up in order to develop applications running on top of it. As planned in the DoW this preliminary prototype does not include neither dy- namic reconfiguration mechanisms, nor the Autonomic Manager which are going to be developed later on during the project.
    [Show full text]
  • APACHE LUCENE for JAVA EE DEVELOPERS JAVAONE:2015 by @Sannegrinovero
    APACHE LUCENE FOR JAVA EE DEVELOPERS JAVAONE:2015 by @SanneGrinovero WHO AM I? WHO AM I? RED HAT Principal Software Engineer, middleware R&D Dutch, Italian, living now in London HIBERNATE TEAM Hibernate Search project lead Hibernate ORM Hibernate OGM CONTRIBUTING TO INFINISPAN the Lucene guy: Infinispan Query, Infinispan Lucene Directory, clustering extensions for Hibernate Search OTHER PROJECTS I HELP WITH... WildFly, JGroups, Apache Lucene, ... AGENDA What is Apache Lucene and how can it help you Integrations with a JPA application via Hibernate Search How does this all relate with Infinispan and WildFly Lucene index management & clouds Plans and wishlist for the future THE SEARCH PROBLEM THE SEARCH PROBLEM Hey JavaOne, remind me where the talk having primary key #2342 is? SQL CAN HANDLE TEXT SQL CAN HANDLE TEXT The LIKE operator? LET'S REFRESH SOME LESSONS ON LET'S REFRESH SOME LESSONS ON THE WIKIPEDIA Select * from WikipediaPages p where p.content LIKE ?; Select * from WikipediaPages p where p.title LIKE ?; Select * from WikipediaPages p where (lowercase(p.content) LIKE %:1% OR lowercase(p.content) LIKE %:2% OR lowercase(p.content) LIKE %:3% OR ...); HOW BAD IS IT? HOW BAD IS IT? I'm quoting successfull web companies. How many can you list which do not provide an effective search engine? Human interaction REQUIREMENTS FOR A SEARCH REQUIREMENTS FOR A SEARCH ENGINE Need to guess what you want w/o you typing all of the content Humans hate complex forms: can't you just guess what I need? We want the results in the blink of an eye We want the right result on top: Relevance We want the right result on top: Relevance SOME MORE THINGS TO CONSIDER: SOME MORE THINGS TO CONSIDER: Approximate word matches Stemming / Language specific analysis Typos Synonyms, Abbreviations, Technical Language specializations BASICS: KEYWORD EXTRACTION On how to improve running by Scott 1.
    [Show full text]
  • Spring Framework Cookbook I
    Spring Framework Cookbook i Spring Framework Cookbook Spring Framework Cookbook ii Contents 1 Spring Framework Best Practices 1 1.1 Define singleton beans with names same as their class or interface names.....................1 1.2 Place Spring bean configuration files under a folder instead of root folder.....................1 1.3 Give common prefixes or suffixes to Spring bean configuration files........................2 1.4 Avoid using import elements within Spring XML configuration files as much as possible.............2 1.5 Stay away from auto wiring in XML based bean configurations...........................2 1.6 Always externalize bean property values with property placeholders........................3 1.7 Select default version-less XSD when importing namespace definitions.......................3 1.8 Always place classpath prefix in resource paths...................................4 1.9 Create a setter method even though you use field level auto wiring.........................4 1.10 Create a separate service layer even though service methods barely delegate their responsibilities to correspond- ing DAO methods...................................................4 1.11 Use stereotype annotations as much as possible when employing annotation driven bean configuration......5 1.12 Group handler methods according to related scenarios in different Controller beans................6 1.13 Place annotations over concrete classes and their methods instead of their interfaces................6 1.14 Prefer throwing runtime exceptions instead of checked exceptions
    [Show full text]
  • Thesis Artificial Intelligence Method Call Argument Completion Using
    Method Call Argument Completion using Deep Neural Regression Terry van Walen [email protected] August 24, 2018, 40 pages Academic supervisors: dr. C.U. Grelck & dr. M.W. van Someren Host organisation: Info Support B.V., http://infosupport.com Host supervisor: W. Meints Universiteit van Amsterdam Faculteit der Natuurwetenschappen, Wiskunde en Informatica Master Software Engineering http://www.software-engineering-amsterdam.nl Abstract Code completion is extensively used in IDE's. While there has been extensive research into the field of code completion, we identify an unexplored gap. In this thesis we investigate the automatic rec- ommendation of a basic variable to an argument of a method call. We define the set of candidates to recommend as all visible type-compatible variables. To determine which candidate should be recom- mended, we first investigate how code prior to a method call argument can influence a completion. We then identify 45 code features and train a deep neural network to determine how these code features influence the candidate`s likelihood of being the correct argument. After sorting the candidates based on this likelihood value, we recommend the most likely candidate. We compare our approach to the state-of-the-art, a rule-based algorithm implemented in the Parc tool created by Asaduzzaman et al. [ARMS15]. The comparison shows that we outperform Parc, in the percentage of correct recommendations, in 88.7% of tested open source projects. On average our approach recommends 84.9% of arguments correctly while Parc recommends 81.3% correctly. i ii Contents Abstract i 1 Introduction 1 1.1 Previous work........................................
    [Show full text]
  • A Decision Support Model for Using an Object-Relational Mapping Tool in the Data Management Component of a Software Platform
    UNIVERSITY OF UTRECHT DEPARTMENT OF INFORMATION AND COMPUTING SCIENCES A Decision Support Model for using an Object-Relational Mapping Tool in the Data Management Component of a Software Platform Rares George Sfirlogea Supervisors: dr. R.L. Jansen dr. ir. J.M.E.M. van der Werf Friday 6th February, 2015 Academic year 2014/2015 Abstract The usage of an ecosystem-based application framework gives software com- panies a competitive advantage in delivering stable, feature rich products while keeping the completion time to a minimum. It is seldom the case that a platform is selected by looking at its software architecture although it can reveal a lot of details about its limitations and functionality. The Object- Relational Mapping (ORM) tool in the data management component imposes extendability restrictions on the software platform. The software architect or developer that is responsible of making this decision is often unaware of the platform traits leading to breaking the general conventions or even consider- ing a costly rewrite of the entire application in the future. The aim of this research thesis is to create a decision support model regarding the inclusion of an ORM tool in the platform architecture and the consequences it imposes on the software platform's quality attributes. With this artefact, any individ- ual in charge with the product architecture can make a more knowledgeable decision, by aligning the platform capabilities with his data requirements. Acknowledgements I would like to express my sincere appreciation for all the people who helped this research reach its final state. With a special mention going to my thesis coordinators, the experts who agreed to be interviewed and of course my girlfriend, family and friends who put up with me during this long period of time.
    [Show full text]
  • Develop a Simple Web Application with Apache Wicket and Apache
    Develop a simple Web application with Apache Wicket and Apache Geronimo Combine Wicket, Geronimo, and Apache Derby to form an open source Java Web development platform Skill Level: Intermediate Robi Sen ([email protected]) Vice President Department 13 LLC 10 Jul 2007 Apache Wicket is an innovative Java™ Web application framework that was introduced a couple of years ago. It helps simplify Web application development by clearly separating the roles of developers and designers. It lets you remove logical code from the view layer, eliminating the need for JavaServer Pages (JSP), providing a simple plain old Java object (POJO)-centric mode of development, and removing much of the need for XML and other configuration file formats. In this tutorial, learn how to set up your system to develop a simple Web application with Wicket, using Apache Geronimo as your application server and Apache Derby as the embedded database. Section 1. Before you start This tutorial is designed for developers who have found Java frameworks, such as Struts, lacking in needed functionality. If you're interested in developing Web applications in a more object-oriented manner, where the view is clearly separated from logic and there's minimal configuration and mapping, then Wicket is for you! This tutorial walks you through the basics of how Wicket works, while using Apache Geronimo to set up a Java Platform, Enterprise Edition (Java EE) server, Web server, and embedded database in just minutes. Combining Wicket with Geronimo lets you develop data-driven, scalable Web applications using software that's all open source. Develop a simple Web application with Apache Wicket and Apache Geronimo © Copyright IBM Corporation 1994, 2008.
    [Show full text]
  • Comparative Studies of 10 Programming Languages Within 10 Diverse Criteria
    Department of Computer Science and Software Engineering Comparative Studies of 10 Programming Languages within 10 Diverse Criteria Jiang Li Sleiman Rabah Concordia University Concordia University Montreal, Quebec, Concordia Montreal, Quebec, Concordia [email protected] [email protected] Mingzhi Liu Yuanwei Lai Concordia University Concordia University Montreal, Quebec, Concordia Montreal, Quebec, Concordia [email protected] [email protected] COMP 6411 - A Comparative studies of programming languages 1/139 Sleiman Rabah, Jiang Li, Mingzhi Liu, Yuanwei Lai This page was intentionally left blank COMP 6411 - A Comparative studies of programming languages 2/139 Sleiman Rabah, Jiang Li, Mingzhi Liu, Yuanwei Lai Abstract There are many programming languages in the world today.Each language has their advantage and disavantage. In this paper, we will discuss ten programming languages: C++, C#, Java, Groovy, JavaScript, PHP, Schalar, Scheme, Haskell and AspectJ. We summarize and compare these ten languages on ten different criterion. For example, Default more secure programming practices, Web applications development, OO-based abstraction and etc. At the end, we will give our conclusion that which languages are suitable and which are not for using in some cases. We will also provide evidence and our analysis on why some language are better than other or have advantages over the other on some criterion. 1 Introduction Since there are hundreds of programming languages existing nowadays, it is impossible and inefficient
    [Show full text]
  • Oracle Glassfish Server Release Notes Release 3.1.2 and 3.1.2.2 E24939-04
    Oracle GlassFish Server Release Notes Release 3.1.2 and 3.1.2.2 E24939-04 October 2012 These Release Notes provide late-breaking information about GlassFish Server 3.1.2 and 3.1.2.2 software and documentation. These Release Notes include summaries of supported hardware, operating environments, and JDK and JDBC/RDBMS requirements. Also included are a summary of new product features in the 3.1.2 and 3.1.2.2 releases, and descriptions and workarounds for known issues and limitations. Oracle GlassFish Server Release Notes, Release 3.1.2 and 3.1.2.2 E24939-04 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S.
    [Show full text]
  • Spring Datasource Properties Mysql
    Spring Datasource Properties Mysql Braden coddle revivingly? Bad-tempered Arne tasselling unfaithfully, he weeps his heat very impishly. Ed minimized vindictively. Run the testcase, we got a green bar. So, we need to configure the timeout parameter. Need access to an account? Secrets, on the other hand, are meant for storing sensitive information and offer better security. Now we are ready to test the application. Wordpress is Super Easy and lots of themes to choose. If it is on the classpath Spring Boot, pick it up. RESTful API, so you can get everything setup right from the command line. Can you please help. This means application fails to start when scripts causes exception. Java config and properties config. Spring reads the properties defined in this file to configure your application. Reason: Failed to determine a suitable driver class. It is a Hibernate feature that control the behavior in more fine grained way. Spring Boot Profiling provide a way to segregate parts of your application. Detect your application can download our prod and it in the best way spring datasource properties mysql database dependency similar expect for my requirements. If a connection is due for validation, but has been validated previously within this interval, it will not be validated again. In the response added Employee data is sent back. Thanks for pointing that out. You also need to update your application build file to include the Spring Framework Milestone repository. Configure your application with database is the basic need of every project. Here the Postgresql database url must be loaded if everything is correct.
    [Show full text]
  • An Experimental Study of the Performance, Energy, and Programming Effort Trade-Offs of Android Persistence Frameworks
    An Experimental Study of the Performance, Energy, and Programming Effort Trade-offs of Android Persistence Frameworks Jing Pu Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the degree of Master of Science in Computer Science and Applications Eli Tilevich, Chair Barbara G. Ryder Francisco Servant July 1, 2016 Blacksburg, Virginia Keywords: Energy Efficiency; Performance; Programming Effort; Orthogonal Persistence; Android; Copyright 2016, Jing Pu An Experimental Study of the Performance, Energy, and Programming Effort Trade-offs of Android Persistence Frameworks Jing Pu (ABSTRACT) One of the fundamental building blocks of a mobile application is the ability to persist program data between different invocations. Referred to as persistence, this functionality is commonly implemented by means of persistence frameworks. When choosing a particular framework, Android|the most popular mobile platform—offers a wide variety of options to developers. Unfortunately, the energy, performance, and programming effort trade-offs of these frameworks are poorly understood, leaving the Android developer in the dark trying to select the most appropriate option for their applications. To address this problem, this thesis reports on the results of the first systematic study of six Android persistence frameworks (i.e., ActiveAndroid, greenDAO, Orm- Lite, Sugar ORM, Android SQLite, and Realm Java) in their application to and performance with popular benchmarks, such as DaCapo. Having measured and ana- lyzed the energy, performance, and programming effort trade-offs for each framework, we present a set of practical guidelines for the developer to choose between Android persistence frameworks. Our findings can also help the framework developers to optimize their products to meet the desired design objectives.
    [Show full text]