상세 컨텐츠

본문 제목

[전문가를 위한 스프링5] 11.2 hibernate annotation @type error

용어 공부

by dajingjing 2023. 11. 28. 23:06

본문

전문가를 위한 스프링5 책을 공부하는 도중,

11장 태스크 스케줄링에서 만난 에러가 있어 적어본다.

 

예제 11-2, JPA 엔터티 클래스로 구현한 Car 클래스에서

책에는 hibernate annotation @Type을 사용하도록 되어있는 부분이 있다.

@Column(name="MANUFACTURE_DATE")
@Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime")
private DateTime manufactureDate;

 

하지만 위와 같이 사용하면 에러난다.

 

https://github.com/quarkusio/quarkus/wiki/Migration-Guide-3.0:-Hibernate-ORM-5-to-6-migration

 

Migration Guide 3.0: Hibernate ORM 5 to 6 migration

Quarkus: Supersonic Subatomic Java. . Contribute to quarkusio/quarkus development by creating an account on GitHub.

github.com

위 사이트에서 확인해보니 Hibernate ORM 6.0 부터는 javax.persistence 가 jakarta.persistence로 바뀌었고,

그 아래 Type system changes가 있고,

Breaking changes 에 Custom Type 가 다 바뀌었단다ㅠ

 

See here more information 에 가보니

https://github.com/hibernate/hibernate-orm/blob/6.0/migration-guide.adoc#type-system

위 사이트가 나오는데, 

위와 같이 변경되었단다..

 

결론은 stackoverflow 를 참고해서

@Column(name="MANUFACTURE_DATE")
@Convert(converter=org.jadira.usertype.dateandtime.joda.PersistentDateTime.class)
private DateTime manufactureDate;

위와 같이 변경하니 에러가 안났다.

 

아래는 참고한 stackoverflow 사이트다.

https://stackoverflow.com/questions/69858533/replacement-for-hibernates-deprecated-type-annotation

 

Replacement for Hibernate's deprecated Type annotation?

Upon upgrading to Hibernate 5.6.0.Final, I found that org.hibernate.annotations.Type is now deprecated. I use this annotation in many of my entities, including places where I leverage Hibernate's ...

stackoverflow.com

 

관련글 더보기