{"id":41937,"date":"2015-07-24T22:00:09","date_gmt":"2015-07-24T19:00:09","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/?p=41937"},"modified":"2015-07-21T11:34:35","modified_gmt":"2015-07-21T08:34:35","slug":"using-hibernate-bean-validator-in-java-se","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html","title":{"rendered":"Using Hibernate Bean Validator in Java SE"},"content":{"rendered":"<p>The main <a href=\"http:\/\/beanvalidation.org\/\">Bean Validation page<\/a> states that &#8220;Bean Validation is a Java specification which &#8230; runs in Java SE but is integrated in Java EE (6 and 7).&#8221; This post demonstrates using Java <a href=\"http:\/\/beanvalidation.org\/\">Bean Validation<\/a> reference implementation (<a href=\"http:\/\/hibernate.org\/validator\/\">Hibernate Validator<\/a>) outside of a Java EE container. The examples in this post are based on <a href=\"http:\/\/in.relation.to\/2014\/10\/23\/hibernate-validator-520-alpha-1-with-java-8-support-and-a-51-maintenance-release\/\">Hibernate Validator 5.1.3 Final<\/a>, which can be downloaded at <a href=\"http:\/\/hibernate.org\/validator\/downloads\/\">http:\/\/hibernate.org\/validator\/downloads<\/a>.<\/p>\n<p>&#8220;<a href=\"http:\/\/hibernate.org\/validator\/documentation\/getting-started\/\">Getting Started with Hibernate Validator<\/a>&#8221; states that Hibernate Validator requires implementations of <a href=\"http:\/\/docs.oracle.com\/javaee\/5\/tutorial\/doc\/bnahq.html\">Unified Expression Language<\/a> (<a href=\"https:\/\/jcp.org\/en\/jsr\/detail?id=341\">JSR 341<\/a>) and <a href=\"https:\/\/docs.oracle.com\/javaee\/6\/tutorial\/doc\/giwhl.html\">Contexts and Dependency Injection<\/a> (<a href=\"http:\/\/docs.oracle.com\/javaee\/6\/tutorial\/doc\/giwhb.html\">CDI<\/a>\/<a href=\"https:\/\/jcp.org\/en\/jsr\/detail?id=346\">JSR 346<\/a>). Implementations of these specifications are available in modern Java EE compliant containers (application servers), but use of Hibernate Validator in Java SE environments requires procurement and use of separate implementations.<\/p>\n<p>The &#8220;Getting Started with Hibernate Validator&#8221; page provides the <a href=\"https:\/\/maven.apache.org\/\">Maven<\/a> XML one can use to identify dependencies on the <a href=\"http:\/\/mvnrepository.com\/artifact\/javax.el\/javax.el-api\/2.2.4\">Expression Language API<\/a> (I&#8217;m using <a href=\"http:\/\/mvnrepository.com\/artifact\/javax.el\/javax.el-api\/3.0.0\">Expression Language 3.0 API<\/a>), <a href=\"http:\/\/mvnrepository.com\/artifact\/org.glassfish.web\/javax.el\/2.2.4\">Expression Language Implementation<\/a> (I&#8217;m using <a href=\"http:\/\/mvnrepository.com\/artifact\/org.glassfish.web\/javax.el\/2.2.6\">Expression Language Implementation 2.2.6<\/a>), and <a href=\"http:\/\/mvnrepository.com\/artifact\/org.hibernate\/hibernate-validator-cdi\">Hibernate Validator CDI portable extension<\/a> (I&#8217;m using <a href=\"http:\/\/mvnrepository.com\/artifact\/org.hibernate\/hibernate-validator-cdi\/5.1.3.Final\">Hibernate Validator Portable Extension 5.1.3 Final<\/a>). I am also using <a href=\"http:\/\/mvnrepository.com\/artifact\/javax.validation\/validation-api\/1.1.0.Final\">Bean Validation API 1.1.0 Final<\/a>, <a href=\"http:\/\/mvnrepository.com\/artifact\/org.jboss.logging\/jboss-logging\/3.3.0.Final\">JBoss Logging 3.3.0 Final<\/a>, and <a href=\"http:\/\/mvnrepository.com\/artifact\/com.fasterxml\/classmate\/1.2.0\">ClassMate 1.2.0<\/a> to build and run my examples.<\/p>\n<p>There are three Java classes defined for the examples of bean validation demonstrated in this post. One class, <code>Car.java<\/code> is adapted from the example provided on the &#8220;<a href=\"http:\/\/hibernate.org\/validator\/documentation\/getting-started\/\">Getting started with Hibernate Validator<\/a>&#8221; page and its code listing is shown next.<\/p>\n<p><strong>Car.java<\/strong><\/p>\n<pre class=\" brush:java\">package dustin.examples;\r\n\r\nimport javax.validation.constraints.Min;\r\nimport javax.validation.constraints.NotNull;\r\nimport javax.validation.constraints.Size;\r\n\r\n\/**\r\n * Example adapted from \"Getting Started with Hibernate Validator\"\r\n * (http:\/\/hibernate.org\/validator\/documentation\/getting-started\/).\r\n *\/\r\npublic class Car\r\n{\r\n   @NotNull\r\n   private String manufacturer;\r\n\r\n   @NotNull\r\n   @Size(min = 2, max = 14)\r\n   private String licensePlate;\r\n\r\n   @Min(2)\r\n   private int seatCount;\r\n\r\n   public Car(final String manufacturer, final String licencePlate, final int seatCount)\r\n   {\r\n      this.manufacturer = manufacturer;\r\n      this.licensePlate = licencePlate;\r\n      this.seatCount = seatCount;\r\n   }\r\n\r\n   public String getManufacturer()\r\n   {\r\n      return manufacturer;\r\n   }\r\n\r\n   public String getLicensePlate()\r\n   {\r\n      return licensePlate;\r\n   }\r\n\r\n   public int getSeatCount()\r\n   {\r\n      return seatCount;\r\n   }\r\n\r\n   @Override\r\n   public String toString()\r\n   {\r\n      return \"Car{\" +\r\n         \"manufacturer='\" + manufacturer + '\\'' +\r\n         \", licensePlate='\" + licensePlate + '\\'' +\r\n         \", seatCount=\" + seatCount +\r\n         '}';\r\n   }\r\n}<\/pre>\n<p>Another class used in this post&#8217;s examples is defined in <code>Garage.java<\/code> and is mostly a wrapper of multiple instances of <code>Car<\/code>. Its primary purpose is to help illustrate recursive validation supported by Hibernate Bean Validator.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p><strong>Garage.java<\/strong><\/p>\n<pre class=\" brush:java\">package dustin.examples;\r\n\r\nimport javax.validation.Valid;\r\nimport javax.validation.constraints.Size;\r\n\r\nimport java.util.Collections;\r\nimport java.util.HashSet;\r\nimport java.util.Set;\r\n\r\n\/**\r\n * Holds cars.\r\n *\/\r\npublic class Garage\r\n{\r\n   @Size(min = 1)\r\n   @Valid\r\n   private final Set&lt;Car&gt; cars = new HashSet&lt;&gt;();\r\n\r\n   public Garage() {}\r\n\r\n   public void addCar(final Car newCar)\r\n   {\r\n      cars.add(newCar);\r\n   }\r\n\r\n   public Set&lt;Car&gt; getCars()\r\n   {\r\n      return Collections.unmodifiableSet(this.cars);\r\n   }\r\n}<\/pre>\n<p>The <code>Garage<\/code> code listing above uses the <a href=\"http:\/\/docs.oracle.com\/javaee\/7\/api\/javax\/validation\/Valid.html\">@Valid annotation<\/a> to indicate that the <code>Car<\/code> instances held by the class should also be validated (&#8220;validation cascading&#8221;).<\/p>\n<p>The final Java class used in this post&#8217;s examples is the class that will actually perform the validation of the two bean validation annotated classes <code>Car<\/code> and <code>Garage<\/code>. This class&#8217;s listing is shown next.<\/p>\n<p><strong>HibernateValidatorDemonstration.java<\/strong><\/p>\n<pre class=\" brush:java\">package dustin.examples;\r\n\r\nimport static java.lang.System.out;\r\n\r\nimport javax.validation.ConstraintViolation;\r\nimport javax.validation.Validation;\r\nimport javax.validation.ValidatorFactory;\r\nimport javax.validation.Validator;\r\nimport java.util.Set;\r\n\r\n\/**\r\n * Demonstrate use of Hibernate Validator.\r\n *\/\r\npublic class HibernateValidatorDemonstration\r\n{\r\n   private final Validator validator;\r\n\r\n   public HibernateValidatorDemonstration()\r\n   {\r\n      final ValidatorFactory factory = Validation.buildDefaultValidatorFactory();\r\n      validator = factory.getValidator();\r\n   }\r\n\r\n   public void demonstrateValidator()\r\n   {\r\n      final Car nullManufacturerCar = new Car(null, \"ABC123\", 4);\r\n      final Set&lt;ConstraintViolation&lt;Car&gt;&gt; nullMfgViolations = validator.validate(nullManufacturerCar);\r\n      printConstraintViolationsToStandardOutput(\"Null Manufacturer Example\", nullMfgViolations);\r\n\r\n      final Car nullLicenseCar = new Car(\"Honda\", null, 3);\r\n      final Set&lt;ConstraintViolation&lt;Car&gt;&gt; nullLicenseViolations = validator.validate(nullLicenseCar);\r\n      printConstraintViolationsToStandardOutput(\"Null License Example\", nullLicenseViolations);\r\n\r\n      final Car oneSeatCar = new Car(\"Toyota\", \"123ABC\", 1);\r\n      final Set&lt;ConstraintViolation&lt;Car&gt;&gt; tooFewSeatsViolations = validator.validate(oneSeatCar);\r\n      printConstraintViolationsToStandardOutput(\"Too Few Seats Example\", tooFewSeatsViolations);\r\n\r\n      final Car oneDigitLicenseCar = new Car(\"General Motors\", \"I\", 2);\r\n      final Set&lt;ConstraintViolation&lt;Car&gt;&gt; tooFewLicenseDigitsViolation = validator.validate(oneDigitLicenseCar);\r\n      printConstraintViolationsToStandardOutput(\"Too Few License Digits Example\", tooFewLicenseDigitsViolation);\r\n\r\n      final Car nullManufacturerNullLicenseCar = new Car(null, null, 4);\r\n      final Set&lt;ConstraintViolation&lt;Car&gt;&gt; nullMfgLicenseViolation = validator.validate(nullManufacturerNullLicenseCar);\r\n      printConstraintViolationsToStandardOutput(\"Null Manufacturer and Null License Example\", nullMfgLicenseViolation);\r\n\r\n      final Garage garage = new Garage();\r\n      final Set&lt;ConstraintViolation&lt;Garage&gt;&gt; noCarsInGarage = validator.validate(garage);\r\n      printConstraintViolationsToStandardOutput(\"No Cars in Garage\", noCarsInGarage);\r\n\r\n      garage.addCar(oneDigitLicenseCar);\r\n      garage.addCar(oneSeatCar);\r\n      garage.addCar(nullManufacturerNullLicenseCar);\r\n      final Set&lt;ConstraintViolation&lt;Garage&gt;&gt; messedUpCarsInGarage = validator.validate(garage);\r\n      printConstraintViolationsToStandardOutput(\"Messed Up Cars in Garage\", messedUpCarsInGarage);\r\n   }\r\n\r\n   private &lt;T&gt; void printConstraintViolationsToStandardOutput(\r\n      final String title,\r\n      final Set&lt;ConstraintViolation&lt;T&gt;&gt; violations)\r\n   {\r\n      out.println(title);\r\n      for (final ConstraintViolation&lt;T&gt; violation : violations)\r\n      {\r\n         out.println(\"\\t\" + violation.getPropertyPath() + \" \" + violation.getMessage());\r\n      }\r\n   }\r\n\r\n   public static void main(final String[] arguments)\r\n   {\r\n      final HibernateValidatorDemonstration instance = new HibernateValidatorDemonstration();\r\n      instance.demonstrateValidator();\r\n   }\r\n}<\/pre>\n<p>The above code features several calls to <a href=\"http:\/\/docs.oracle.com\/javaee\/7\/api\/javax\/validation\/Validator.html#validate-T-java.lang.Class...-\">javax.validation.Validator.validate(T, Class&lt;?&gt;)<\/a> that demonstrate the effectiveness of the annotations on the classes whose instances are being validated. Several examples validate an object&#8217;s single validation violation, an example validates an object&#8217;s multiple validation violations, and a final example demonstrates successful cascading violation detection.<\/p>\n<p>The class <code>HibernateValidatorDemonstration<\/code> has a <code>main(String[])<\/code> function that can be executed in a Java SE environment (assuming the necessary JARs are on the runtime classpath). The output of running the above demonstration class is shown next:<\/p>\n<pre class=\" brush:bash\">Jul 19, 2015 9:30:05 PM org.hibernate.validator.internal.util.Version \r\nINFO: HV000001: Hibernate Validator 5.1.3.Final\r\nNull Manufacturer Example\r\n manufacturer may not be null\r\nNull License Example\r\n licensePlate may not be null\r\nToo Few Seats Example\r\n seatCount must be greater than or equal to 2\r\nToo Few License Digits Example\r\n licensePlate size must be between 2 and 14\r\nNull Manufacturer and Null License Example\r\n manufacturer may not be null\r\n licensePlate may not be null\r\nNo Cars in Garage\r\n cars size must be between 1 and 2147483647\r\nMessed Up Cars in Garage\r\n cars[].licensePlate size must be between 2 and 14\r\n cars[].manufacturer may not be null\r\n cars[].licensePlate may not be null\r\n cars[].seatCount must be greater than or equal to 2<\/pre>\n<h2>Conclusion<\/h2>\n<p>This post has demonstrated that the Hibernate Bean Validator, the reference implementation of the Bean Validation specification, can be executed in a Java SE environment. As part of this demonstration, some basic concepts associated with the Bean Validation specification and the Hibernate Bean Validator implementation were also discussed and demonstrated.<\/p>\n<h4>Additional Resources<\/h4>\n<ul>\n<li><a href=\"http:\/\/www.javaworld.com\/article\/2137346\/data-storage\/java-tip-hibernate-validation-in-a-standalone-implementation.html\">Java Tip: Hibernate validation in a standalone implementation<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/2707683\/how-do-i-import-javax-validation-into-my-java-se-project\">How do I import javax.validation into my Java SE project?<\/a><\/li>\n<li><a href=\"http:\/\/www.aviyehuda.com\/blog\/2010\/04\/14\/using-hibernate-validator-to-cover-your-validation-needs\/\">Using Hibernate Validator to cover your validation needs<\/a><\/li>\n<\/ul>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"http:\/\/marxsoftware.blogspot.com\/2015\/07\/using-hibernate-bean-validator-java-se.html\">Using Hibernate Bean Validator in Java SE<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/jcg\/\">JCG partner<\/a> Dustin Marx at the <a href=\"http:\/\/marxsoftware.blogspot.com\/\">Inspired by Actual Events <\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The main Bean Validation page states that &#8220;Bean Validation is a Java specification which &#8230; runs in Java SE but is integrated in Java EE (6 and 7).&#8221; This post demonstrates using Java Bean Validation reference implementation (Hibernate Validator) outside of a Java EE container. The examples in this post are based on Hibernate Validator &hellip;<\/p>\n","protected":false},"author":122,"featured_media":153,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[31],"class_list":["post-41937","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-jboss-hibernate"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Using Hibernate Bean Validator in Java SE - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"The main Bean Validation page states that &quot;Bean Validation is a Java specification which ... runs in Java SE but is integrated in Java EE (6 and 7).&quot; This\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Hibernate Bean Validator in Java SE - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"The main Bean Validation page states that &quot;Bean Validation is a Java specification which ... runs in Java SE but is integrated in Java EE (6 and 7).&quot; This\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2015-07-24T19:00:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/jboss-hibernate-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dustin Marx\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dustin Marx\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/07\\\/using-hibernate-bean-validator-in-java-se.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/07\\\/using-hibernate-bean-validator-in-java-se.html\"},\"author\":{\"name\":\"Dustin Marx\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/945db7c24d37de80481570a5643f7958\"},\"headline\":\"Using Hibernate Bean Validator in Java SE\",\"datePublished\":\"2015-07-24T19:00:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/07\\\/using-hibernate-bean-validator-in-java-se.html\"},\"wordCount\":521,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/07\\\/using-hibernate-bean-validator-in-java-se.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/jboss-hibernate-logo.jpg\",\"keywords\":[\"JBoss Hibernate\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/07\\\/using-hibernate-bean-validator-in-java-se.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/07\\\/using-hibernate-bean-validator-in-java-se.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/07\\\/using-hibernate-bean-validator-in-java-se.html\",\"name\":\"Using Hibernate Bean Validator in Java SE - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/07\\\/using-hibernate-bean-validator-in-java-se.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/07\\\/using-hibernate-bean-validator-in-java-se.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/jboss-hibernate-logo.jpg\",\"datePublished\":\"2015-07-24T19:00:09+00:00\",\"description\":\"The main Bean Validation page states that \\\"Bean Validation is a Java specification which ... runs in Java SE but is integrated in Java EE (6 and 7).\\\" This\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/07\\\/using-hibernate-bean-validator-in-java-se.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/07\\\/using-hibernate-bean-validator-in-java-se.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/07\\\/using-hibernate-bean-validator-in-java-se.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/jboss-hibernate-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/jboss-hibernate-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2015\\\/07\\\/using-hibernate-bean-validator-in-java-se.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Using Hibernate Bean Validator in Java SE\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/945db7c24d37de80481570a5643f7958\",\"name\":\"Dustin Marx\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a11cce21db49686299ad9afde297b5213759b39e79a54820195cf16b842639c0?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a11cce21db49686299ad9afde297b5213759b39e79a54820195cf16b842639c0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a11cce21db49686299ad9afde297b5213759b39e79a54820195cf16b842639c0?s=96&d=mm&r=g\",\"caption\":\"Dustin Marx\"},\"sameAs\":[\"http:\\\/\\\/marxsoftware.blogspot.com\\\/\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/Dustin-Marx\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using Hibernate Bean Validator in Java SE - Java Code Geeks","description":"The main Bean Validation page states that \"Bean Validation is a Java specification which ... runs in Java SE but is integrated in Java EE (6 and 7).\" This","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html","og_locale":"en_US","og_type":"article","og_title":"Using Hibernate Bean Validator in Java SE - Java Code Geeks","og_description":"The main Bean Validation page states that \"Bean Validation is a Java specification which ... runs in Java SE but is integrated in Java EE (6 and 7).\" This","og_url":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2015-07-24T19:00:09+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/jboss-hibernate-logo.jpg","type":"image\/jpeg"}],"author":"Dustin Marx","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Dustin Marx","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html"},"author":{"name":"Dustin Marx","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/945db7c24d37de80481570a5643f7958"},"headline":"Using Hibernate Bean Validator in Java SE","datePublished":"2015-07-24T19:00:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html"},"wordCount":521,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/jboss-hibernate-logo.jpg","keywords":["JBoss Hibernate"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html","url":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html","name":"Using Hibernate Bean Validator in Java SE - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/jboss-hibernate-logo.jpg","datePublished":"2015-07-24T19:00:09+00:00","description":"The main Bean Validation page states that \"Bean Validation is a Java specification which ... runs in Java SE but is integrated in Java EE (6 and 7).\" This","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/jboss-hibernate-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/jboss-hibernate-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2015\/07\/using-hibernate-bean-validator-in-java-se.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Using Hibernate Bean Validator in Java SE"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/945db7c24d37de80481570a5643f7958","name":"Dustin Marx","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a11cce21db49686299ad9afde297b5213759b39e79a54820195cf16b842639c0?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a11cce21db49686299ad9afde297b5213759b39e79a54820195cf16b842639c0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a11cce21db49686299ad9afde297b5213759b39e79a54820195cf16b842639c0?s=96&d=mm&r=g","caption":"Dustin Marx"},"sameAs":["http:\/\/marxsoftware.blogspot.com\/"],"url":"https:\/\/www.javacodegeeks.com\/author\/Dustin-Marx"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/41937","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/122"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=41937"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/41937\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/153"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=41937"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=41937"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=41937"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}