PostgreSQLデータベースによって値がデフォルトとして設定されている複数のパラメータを持つJPA/EclipseLinkモデルがあります。具体的には、私が持っている:新しい行が私のモデルは、このようになりますnow()
JPAでINSERTの列をスキップ
デフォルトタイプTIMESTAMP
の
created_at
列を追加し、自動インクリメントタイプSERIAL
の
id
列を:import javax.persistence.*; @Entity @Table(name="entity") @NamedQuery(name="Entity.findAll", query="SELECT e from Entity e") public class Entity { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id; @Column(name="created_at") private java.sql.Timestamp createdAt; // constructor, getters, and setters }
の行を挿入しようとするとただし、
created_at
列の値がNULL
に設定されているため、挿入が失敗します。NULL
を挿入するのではなく、単にその列に何も挿入しないで、PostgreSQLでnow()
に設定するだけです。基本的にcreatedAt
に@GeneratedValue
を使用したいと思いますが、その注釈は主キーのみであり、複数の属性で使用することはできません。これを達成するために使用できる別のアノテーションがありますか?
おそらくこれがあなたが探しているものです:http://stackoverflow.com/questions/8202154/how-to-create-an-auto-generated-date-timestamp-field-in-a-play-jpa – Spasoje