当前位置: 首页 > 知识库问答 >
问题:

原因:com.sybase.jdbc2.jdbc.sybsqlexception:表检查中的列detail_id不允许空值

长孙昀
2023-03-14
package com.hibernate.mapping;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="exam_detail")
public class ExamDetail {

    private int id;
    private String fullName;
    private int numberOfQuestions;
    private int passingPercentage;

    @Id
    @GeneratedValue
    @Column(name="id")
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getFullName() {
        return fullName;
    }
    public void setFullName(String fullName) {
        this.fullName = fullName;
    }
    public int getNumberOfQuestions() {
        return numberOfQuestions;
    }
    public void setNumberOfQuestions(int numberOfQuestions) {
        this.numberOfQuestions = numberOfQuestions;
    }
    public int getPassingPercentage() {
        return passingPercentage;
    }
    public void setPassingPercentage(int passingPercentage) {
        this.passingPercentage = passingPercentage;
    }
}
package com.hibernate.mapping;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name="exam")
public class Exam {

    private int id;
    private String shortName;
    private ExamDetail detail;

    @Id
    @GeneratedValue
    @Column(name="id")
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getShortName() {
        return shortName;
    }
    public void setShortName(String shortName) {
        this.shortName = shortName;
    }

    @OneToOne(cascade=CascadeType.PERSIST)
    @JoinColumn(name="detail_id")
    public ExamDetail getDetail() {
        return detail;
    }
    public void setDetail(ExamDetail detail) {
        this.detail = detail;
    }
}
package com.hibernate.mapping;

import org.hibernate.Session;

import com.hibernate.util.HibernateUtil;

public class TestMapping {

    public static void main(String[] args) {
        Session session = HibernateUtil.beginTransaction();

        Exam exam = new Exam();
        exam.setShortName("SCJA");

        ExamDetail detail = new ExamDetail();
        detail.setFullName("Sun Certified Associate");
        detail.setNumberOfQuestions(50);
        detail.setPassingPercentage(60);

        exam.setDetail(detail);

        session.save(exam);
        HibernateUtil.commitTransaction();
    }
}

在com.sybase.jdbc2.tds.tds.processeed(tds.java:2535)在com.sybase.jdbc2.tds.tds.tds.nextresult(tds.java:1916)在com.sybase.jdbc2.jdbc.sybstatement.nextresult(resultgetter.java:69)在com.sybase.jdbc2.jdbc.sybstatement.nextresult(sybstatement.java:201)在com.sybase.jdbc2.jdbc.sybstatement.nextresult(sybstatement.java:182)在96)com.sybase.jdbc2.jdbc.sybstatement.execute(sybstatement.java:1588)com.sybase.jdbc2.jdbc.sybpreparedstatement.execute(sybpreparedstatement.java:580)org.hibernate.id.identitygenerator$insertselectdelegate.executeandextract(identitygenerator.java:138)org.hibernate.id.insert.abstractreturningdelegate.performinsert(abstractreturningdelegate.java:57)..22其他

我做错了什么?

有没有漏掉的口供?

共有1个答案

花俊雄
2023-03-14

您需要在JPA中引用ID生成。

此处:引用

JPA示例

 类似资料:
  • 问题内容: 给定一个PostgreSQL表,该表具有一个名为的列和一个约束,如下所示: 在这种情况下,我可以提取有关此约束的信息: 但是是否有可能编写一个专门返回未决,成功,失败的查询? 能够在我的应用程序中记住此查询的结果,而不需要维护重复的副本,将是很棒的。 问题答案: 您可以查询系统目录,例如: 使用以下函数 解压缩 字符串:

  • 我正在使用grails 3.3.9构建一个示例hello应用程序。当应用程序被部署时,它工作得很好。当我检查一天左右后,应用程序已经崩溃了。检查日志,我看到一个错误“连接关闭后不允许操作”。看起来mysql数据库连接在某个时候中断了。 下面是我在application.yml中使用的数据库配置 我很欣赏任何关于为什么数据库连接会在一段时间后自动关闭的见解。我该如何预防呢?谢谢你的反馈。

  • 这可能是一个复制品。但是经过一天的研究,我希望你能宽大处理。这是一个关于协方差的问题。 为什么我能这么做? 但不能这样做吗? 我读了一些关于协方差的讨论。 “C#中的协方差” “将列表转换为接口列表” “转换列表到接口列表” 我的理解是,我不能将狗的名单添加到动物名单中,因为这样我就可以将猫添加到动物名单中,这将是危险的。但是在动物列表中添加一个猫或狗的例子也同样危险,不是吗?在我看来,C#还没有

  • 问题内容: 在Python中,内置函数和return和分别用于空的可迭代对象。我意识到,如果相反,仍然可以提出这个问题。但我想知道为什么选择了 这种特定 行为。是任意的,即。换一种方式是否一样容易,还是有潜在的原因? (我问的原因仅仅是因为我不记得哪个是哪个,如果我知道背后的原因,那么我可能会发现。还有好奇心。) 问题答案: 怎么样的类比… 您有一个袜子抽屉,但当前为空。它是否包含任何黑色袜子?不

  • 问题内容: 我已经看过很多次这样的代码: 人们为什么选择父类(和其他类)而不是生成的对象的类型? 这会降低性能吗?还是为什么有人要这样做? 问题答案: 当某人这样编写代码时,他/她正在尝试遵循基本的OO设计原则,即- 编写接口程序,而不是具体实现 我已经在我的一篇博客文章中解释了这一原理。在该部分中查找。 总而言之,当您使用父类型的引用来引用子类型的实例时,您将获得很大的灵活性。例如,如果将来需要

  • 我在数据库中有Consumer表,其中Consumer_type列上有check约束,如下所示: 现在,从hibernate方面,我想添加check约束注释,该注释只允许消费者类型表中的“ACCOUNT”和“ORGANIZATION”值。 为此,我应该使用哪个hibernate/jpa注释?