0
LocalDate
을 Hibernate
에 Date
타입으로 저장하고 싶지만 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
파일 만 사용하고 있습니다. LocalDate
을 Date
으로 변환하기 위해 다른 클래스를 만들어야하지만 내 엔티티와 해당 클래스를 연결하는 방법을 알지 못합니다. 당신의 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();
}
}
당신이 그 재산의 유형으로 컨버터 추가 :
내가 그 시도를하지만 난있어 이 오류는 유형을 결정할 수 없습니다. com.clustertech.entity.TypeConverter, at table : ticket, columns : [org.hibernate.mapping.Column (tb_date)]. 나는 무슨 일이 일어 났는지 모르겠다. 나는 정확히 당신이 썼다. 내가 놓친 게 있니? 그것은 Hibernate가 시작했을 때 내 변환기 클래스를 찾지 못했던 것 같습니다. – yfabio