我目前正在实施一个历史报告商店,用户每天只能存储1个报告。我们正在尝试应用唯一约束,但我们正在努力创建日期降至毫秒级分辨率。无论如何,只有在Hibernate中的Date字段的日期应用约束而不必下拉以直接在我们的底层Postgres DB中应用约束?
目前无效的代码如下:
@Entity
@Table(name = "report", uniqueConstraints = @UniqueConstraint(columnNames={"createdDate", "name"}))
public class Report {
@Column
private Date createdDate
@Column
private String name;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
}
答案 0 :(得分:2)
答案 1 :(得分:1)
你可以
答案 2 :(得分:0)
我不知道hibernate,但您可以使用旧的简单SQL直接在数据库表上创建此约束。
如:
CREATE UNIQUE INDEX uidx_report_name_create_date ON report (name,date_trunc('day', create_date));
select date_trunc('day', TIMESTAMP '2001-02-16 20:38:40');
RETURNS 2001-02-16 00:00:00
select date_trunc('day', TIMESTAMP '2001-02-16 10:38:40');
RETURNS 2001-02-16 00:00:00