package de.rwth.idsg.bikeman.domain.ixsi; import de.rwth.idsg.bikeman.domain.CardAccount; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; import java.io.Serializable; import java.util.Date; /** * Created by max on 22/10/14. */ @Getter @Setter @EqualsAndHashCode(of = {"tokenId"}) @ToString(includeFieldNames = true, exclude = {}) @Entity @Table(name = "IXSI_TOKEN") @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) @TableGenerator(name="ixsi_token_gen", initialValue=0, allocationSize=1) public class IxsiToken implements Serializable { private static final long serialVersionUID = 621155378340926282L; @Id @GeneratedValue(strategy = GenerationType.TABLE, generator = "ixsi_token_gen") @Column(name = "token_id", nullable = false) private Long tokenId; @Column(name = "token_value") private String tokenValue; @OneToOne(cascade = CascadeType.DETACH, fetch = FetchType.EAGER) @JoinColumn(name = "card_account_id") private CardAccount cardAccount; @Temporal(TemporalType.TIMESTAMP) @Column(name = "created", nullable = false, updatable = true) private Date created; @Temporal(TemporalType.TIMESTAMP) @Column(name = "last_used", nullable = true, updatable = true) private Date lastUsed; @PrePersist protected void prePersist() { created = new Date(); lastUsed = null; } }