2017-02-11 2 views
0

LocalDateHibernateDate 타입으로 저장하고 싶지만 Hibernate 문서에서도 찾을 수 없습니다. 한 번 시도했지만 BLOB 형식으로 저장됩니다. 여기LocalDate를 Date 타입으로 Hibernate에 지속시키는 방법

<?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > 
     <hibernate-mapping package="com.clustertech.entity"> 

    <class name="Ticket" table="ticket"> 
    <id name="id" type="int" column="id"> 
     <generator class="native" /> 
    </id> 
    <property name="date" column="tb_date" type="date" length="35"/> 
    <property name="topic" column="tb_topic" type="string" length="35"/> 
    <property name="subject" column="tb_subject" type="string" length="35"/> 
    <property name="status" column="tb_status" type="string" length="35"/> 
    <property name="message" column="tb_message" type="string"  length="255"/> 

    <many-to-one name="person" column="person_id"/> 

     </class> 
    </hibernate-mapping> 

그리고 내 클래스의 실체이다 : 그것은 일반 POJO 클래스와 getter 및 setter를 가지고

public class Ticket implements Comparable<Ticket> { 

    private int id; 
    private LocalDate date; 
    private String topic; 
    private String Subject; 
    private String message; 
    private String status; 
    private Person person; 
} 

여기 내 티켓 엔티티입니다. 나는 다른 웹 사이트에서 그것을하는 한 가지 방법을 보았지만 그들이 anotations를 사용하고있다. 비슷한 것을 원하지만 POJO 클래스와 hbm.xml 파일 만 사용하고 있습니다. LocalDateDate으로 변환하기 위해 다른 클래스를 만들어야하지만 내 엔티티와 해당 클래스를 연결하는 방법을 알지 못합니다. 당신의 hbm.xml 파일에서 다음

@Converter 
public class MyConverter implements AttributeConverter<LocalDate, Date> { 

    @Override 
    public Date convertToDatabaseColumn(LocalDate localDate) { 
     if(localDate == null){ 
      return null; 
     } 

     return Date.valueOf(localDate); 
    } 

    @Override 
    public LocalDate convertToEntityAttribute(Date date) { 
     if(date == null){ 
      return null; 
     } 

     return date.toLocalDate(); 
    } 
} 

당신이 그 재산의 유형으로 컨버터 추가 :

답변

1

당신은 변환기를 만들 필요가

<property name="date" column="tb_date" type="date"/> 
<convert converter="com.mypkg.MyConverter" attribute-name="date"/> 
+0

내가 그 시도를하지만 난있어 이 오류는 유형을 결정할 수 없습니다. com.clustertech.entity.TypeConverter, at table : ticket, columns : [org.hibernate.mapping.Column (tb_date)]. 나는 무슨 일이 일어 났는지 모르겠다. 나는 정확히 당신이 썼다. 내가 놓친 게 있니? 그것은 Hibernate가 시작했을 때 내 변환기 클래스를 찾지 못했던 것 같습니다. – yfabio

+0

관련 문제