title: Jadira, Hibernate, and JSR 310 - java.lang.TypeNotPresentException: Type org.threeten.bp.Duration not present
body: <p>I'm trying to get Jadira, Hibernate 4, and JSR-310 working together and I'm getting a really odd exception that I can't find any info on through scanning the web.  </p>
  
  <p>POM elements (related to Jadira/Joda)</p>
  
  <pre><code>&lt;dependency&gt;
     &lt;groupId&gt;joda-time&lt;/groupId&gt;
     &lt;artifactId&gt;joda-time&lt;/artifactId&gt;
     &lt;version&gt;2.1&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;org.jadira.usertype&lt;/groupId&gt;
      &lt;artifactId&gt;usertype.core&lt;/artifactId&gt;
      &lt;version&gt;3.1.0.CR2&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;org.jadira.usertype&lt;/groupId&gt;
      &lt;artifactId&gt;usertype.extended&lt;/artifactId&gt;
      &lt;version&gt;3.1.0.CR2&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;org.hibernate&lt;/groupId&gt;
      &lt;artifactId&gt;hibernate-testing&lt;/artifactId&gt;
      &lt;version&gt;${hibernate.version}&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;org.springframework&lt;/groupId&gt;
      &lt;artifactId&gt;spring-context-support&lt;/artifactId&gt;
      &lt;version&gt;${spring.framework.version}&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;org.hibernate&lt;/groupId&gt;
      &lt;artifactId&gt;hibernate-entitymanager&lt;/artifactId&gt;
      &lt;version&gt;${hibernate.version}&lt;/version&gt;
  &lt;/dependency&gt;
  </code></pre>
  
  <p>Here's my test code:</p>
  
  <pre><code>@Entity
  @Table(name = "BUSINESS_DATES")
  @BizDateValidatorI
  public class BizDate {
  
      @Id
      @Column(name="BIZ_DATE_PK")
      private int bizDatePk = -1;
  
      @Column(name="BIZ_DATE")
      @Type(type="org.jadira.usertype.dateandtime.joda.jsr310.PersistentLocalDate")   
      @NotNull
      private LocalDate bizDate;
  
      @Column(name="BIZ_DATE_TYPE")
      @Enumerated(EnumType.STRING)
      @NotNull
      private BizDateTypeEnum bizDateTypeEnum;
  
      @Column(name="DATE_DESC")
      @NotBlank
      @Length(min = 5, max = 100)
      private String dateDesc;
  
      @Column(name="START_TIME")
      @Type(type="org.jadira.usertype.dateandtime.joda.jsr310.PersistentLocalDateTime")   
      private LocalDateTime startTime;
  
      @Column(name="END_TIME")
      @Type(type="org.jadira.usertype.dateandtime.joda.jsr310.PersistentLocalDateTime")   
      private LocalDateTime endTime;
  
  &lt;&lt;Omitted getters/setters&gt;&gt;
  </code></pre>
  
  <p>Application Context:</p>
  
  <pre><code>&lt;description&gt;Application Context for Core Utilities&lt;/description&gt;
  
  &lt;tx:annotation-driven transaction-manager="transactionManager" /&gt;
  
  &lt;context:component-scan base-package="org.jc.utils" /&gt;
  
  &lt;jpa:repositories base-package="org.jc.utils" /&gt;
  
  &lt;jdbc:embedded-database id="dataSource" type="H2"&gt;
      &lt;jdbc:script location="classpath:/org/jc/utils/basetests/basetests.sql" /&gt;
  &lt;/jdbc:embedded-database&gt;
  </code></pre>
  
  <p></p>
  
  <p>Does anyone have any idea why I keep getting java.lang.TypeNotPresentException: Type org.threeten.bp.Duration not present exceptions?  Threeten isn't getting pulled in by the usertype declaration in Maven and there's not much out there about it's role in usertype.</p>
  
  <p>Thanks!</p>
  
  <p>John</p>