java - 如何在hibernate实体中初始化复杂类型

标签 java hibernate jpa

我类(class)的一个成员是字节类型的。如您所知,其初始值为NULL。但如果默认情况下没有人调用构造函数,我希望它为 0 。那么我这样做的方式是正确的吗?因为在我的数据库中该值不允许为NULL。所以我需要给它一个默认值应该是0

@Entity
@Table(name = "Holiday")
public class Holiday {

   @Column(columnDefinition = "Bit(2)")
   private Byte approved = (byte) 0;

   public Holiday() {
   }

   public Holiday( Byte approved) {
      super();
      this.approved = approved;
   }

P.S.:当然这个类还有更多的成员和另一个构造函数。但为了演示,我删除了所有其他成员。

最佳答案

尝试添加nullable = false:

    @Entity
    @Table(name = "Holiday")
    public class Holiday {

        @Column(columnDefinition = "Bit(2)", nullable = false)
        private Byte approved = (byte) 0;

        public Holiday() {
        }

        public Holiday( Byte approved) {
            super();
            this.approved = approved;
        }

或者在columnDefinition中添加NOT NULL DEFAULT 0

 @Column(columnDefinition = "Bit(2) NOT NULL DEFAULT 0")

关于java - 如何在hibernate实体中初始化复杂类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60097157/

相关文章:

java - 双重检查锁定是否仅在惰性初始化场景中被破坏?

java - ORM 映射中的 "owning side"是什么?

java - hibernate中的重复属性映射异常

java - PreUpdate 监听器在空更新期间触发

java - 具有继承的单向多对一关系

java - 酷还是傻?捕捉(异常[NamingException,CreateException] e)

java - 使用 BlockingQueue 和多线程。所有线程都陷入等待状态

java - 如何在自定义操作类中设置区域设置并在另一个java类中获取它?

java - Spring Security 与 hibernate 和 mysql 登录

JPA渴望获取和分页最佳实践