package kr.debop4j.data.ogm.test.type;
import kr.debop4j.data.model.AnnotatedEntityBase;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.URL;
import java.util.Calendar;
import java.util.Date;
import java.util.UUID;
/**
* kr.debop4j.data.ogm.test.type.Bookmark
*
* @author 배성혁 ( sunghyouk.bae@gmail.com )
* @since 13. 4. 2. 오후 5:16
*/
@Entity
@Getter
@Setter
public class Bookmark extends AnnotatedEntityBase {
@Id
private String id;
private String description;
private URL url;
@Column(name = "site_weight")
private BigDecimal siteWeight;
@Column(name = "visits_count")
private BigInteger visitCount;
@Column(name = "is_favorite")
private Boolean isFavorite;
@Column(name = "display_mask")
private Byte displayMask;
@Temporal(TemporalType.DATE)
private Date creationDate;
@Temporal(TemporalType.TIME)
private Date updateDate;
@Temporal(TemporalType.TIMESTAMP)
private Date destructionDate;
@Temporal(TemporalType.DATE)
private Calendar creationCalendar;
// not supported
// @Temporal(TemporalType.TIME)
// private Calendar updateCalendar;
@Temporal(TemporalType.TIMESTAMP)
private Calendar destructionCalendar;
@Enumerated(EnumType.STRING)
public BookmarkType type;
@Lob
@Basic(fetch = FetchType.EAGER)
@Column(name = "DS_BLOB")
private byte[] blob;
private UUID serialNumber;
private Integer stockCount;
private Long userId;
// hibernate-search, hibernate-ogm에서는 사용하면 안된다.
// @Type(type = "kr.debop4j.data.hibernate.usertype.JodaDateTimeUserType")
// private DateTime jodaTime;
}