package kr.debop4j.data.mapping.model.annotated.usertypes; import kr.debop4j.data.jpa.domain.JpaEntityBase; import lombok.Getter; import lombok.Setter; import org.hibernate.annotations.Columns; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import org.hibernate.annotations.Type; import org.joda.time.DateTime; import javax.persistence.*; /** * org.annotated.mapping.domain.model.usertypes.Budget * * @author 배성혁 ( sunghyouk.bae@gmail.com ) * @since 12. 12. 6. */ @Getter @Setter @Entity @Table(name = "JPA_USERTYPE_BUDGET") @DynamicInsert @DynamicUpdate public class Budget extends JpaEntityBase { private static final long serialVersionUID = -2666185706211853371L; @Id @GeneratedValue @Column(name = "BUGET_ID") private Long id; @Type(type = "kr.debop4j.data.mapping.model.annotated.usertypes.MonetaryAmountUserType") @Column(name = "INITIAL_PRICE", nullable = true) private MonetaryAmount initialPrice; @Type(type = "kr.debop4j.data.mapping.model.annotated.usertypes.MonetaryAmountCompositeUserType") @Columns(columns = { @Column(name = "COMPOSITE_AMOUNT"), @Column(name = "COMPOSITE_CURRENCY", length = 8) }) private MonetaryAmount compositePrice; @Enumerated(EnumType.STRING) @Column(name = "RATING", nullable = false, length = 128) private Rating rating; @Type(type = "kr.debop4j.data.hibernate.usertype.JodaDateTimeUserType") private DateTime createdAt; }