{code:title=Example.java|borderStyle=solid}
import java.io.Serializable; import org.joda.time.LocalDate;
public class App implements Serializable {
private final static long serialVersionUID = 1L; private String id; private LocalDate relevanceStart;
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public LocalDate getRelevanceStart() { return relevanceStart; }
public void setRelevanceStart(LocalDate relevanceStart) { this.relevanceStart = relevanceStart; } } {code} {code:xml} <!--orm.xml--> <?xml version="1.0" encoding="UTF-8"?> <entity-mappings xmlns="http://xmlns.jcp.org/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence/orm http://xmlns.jcp.org/xml/ns/persistence/orm_2_1.xsd" version="2.1"> <description>Persistence for gov.ic.geoint.gets.document</description> <package>entity</package> <entity class="exceptionexample.hibernate.App" access="FIELD" name="App"> <table name="App"/> <attributes> <id name="id"/> <basic name="id"> <column name="id" /> </basic> <basic name="relevanceStart" > <column name="relevanceStart" column-definition="varChar" length="100" /> </basic> </attributes> </entity> <converter class=" candlelight.joda.converters. JodaLocalDateConverter" auto-apply="true"/> </entity-mappings>
{code} {code:title=Converter.java|borderStyle=solid}
import java.util.Date; import javax.persistence.AttributeConverter; import javax.persistence.Converter; import org.joda.time.LocalDate;
@Converter(autoApply = true) public class JodaLocalDateConverter implements AttributeConverter<LocalDate, Date> {
public Date convertToDatabaseColumn(LocalDate localDate) { return localDate.toDate(); }
public LocalDate convertToEntityAttribute(Date date) { return LocalDate.fromDateFields(date); } } {code}
{code:title=Test.java|borderStyle=solid}
import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import org.joda.time.LocalDate; import static org.junit.Assert.*;
/** * Unit test for simple App. */ public class AppTest {
private static EntityManagerFactory emf;
@org.junit.Test public void testApp() throws Exception { App md = new App(); md.setId("1132123"); md.setRelevanceStart(LocalDate.parse("2013-12-09")); EntityManager em = null;
try { EntityManagerFactory factory = Persistence .createEntityManagerFactory("hibernateH3"); em = factory.createEntityManager(); em.getTransaction().begin(); em.persist(md);
em.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); if (em != null) { em.close(); } if (emf != null) { emf.close(); } fail(e.getMessage());
} } }
{code}
|