Heroku spring-jpa UniqueConstraint

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Heroku spring-jpa UniqueConstraint相关的知识,希望对你有一定的参考价值。

我遇到了一个问题:在我的课程项目中,我使用spring-jpa并使用两个唯一字段创建UserEntity。在我的本地机器上,所有工作都很好(在db中创建了唯一的约束),但是在heroku上没有创建唯一的约束。我用的是java9 + spring-jpa。

import javax.persistence.*;

@Entity(name = "UserEntity")
@Table(name = "user_entity", uniqueConstraints = {
        @UniqueConstraint(columnNames = {"nickname"}, name = "nickname_constraint"),
        @UniqueConstraint(columnNames = {"email"}, name = "email_constraint")
})
public class UserEntity {
    private Integer id;
    private String nickname;
    private String email;
    private String passwordHash;
    private String avatarPath;
    private GameResults gameResults;

    public UserEntity() {
    }

    public UserEntity(String nickname, String email, String password) {
        this.nickname = nickname;
        this.email = email;
        this.passwordHash = password;
    }

    public UserEntity(String nickname, String password) {
        this.nickname = nickname;
        this.passwordHash = password;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Integer getId() {
        return id;
    }

    @Column(name = "nickname")
    public String getNickname() {
        return this.nickname;
    }

    @Column(name = "avatar_path")
    public String getAvatarPath() {
        return avatarPath;
    }

    @Column(name = "email")
    public String getEmail() {
        return email;
    }

    @Column(name = "password_hash")
    public String getPasswordHash() {
        return passwordHash;
    }

    @OneToOne(fetch = FetchType.LAZY)
    public GameResults getGameResults() {
        return gameResults;
    }
    // setters ommited
}
答案

谢谢jusermar10!真的,问题是我第一次用不正确的jpa实体部署了应用程序。重新部署固定版本的应用程序后,postgres中没有必要的约束。因此,丢弃db并重新启动所有dynos对我有帮助。

以上是关于Heroku spring-jpa UniqueConstraint的主要内容,如果未能解决你的问题,请参考以下文章

Spring-JPA 可以与 Postgres 分区一起使用吗?

spring-jpa规格工具

如何添加到列表的链接以使用 spring-jpa 进行排序?

spring-jpa通过自定义sql执行修改碰到的问题

itoo集成jpa

0120 springboot集成Mybatis和代码生成器