【问题标题】:hibernate mapping - getting an error while running the hibernate configuration休眠映射 - 运行休眠配置时出错
【发布时间】:2015-07-19 03:11:50
【问题描述】:

我正在尝试从 Eclipse 运行 Hibernate 配置并从中创建数据库结构。在运行配置时,我收到以下异常:

java.sql.SQLException: ORA-00942: table or view does not exist 
java.sql.SQLException: ORA-00904: : invalid identifier errors.

我使用注解来创建 hbm/pojo。 下面是代码。我不确定我是否遗漏了什么。有什么帮助吗?

配置: 日食开普勒 SR2 休眠核心 4+ 甲骨文 10g Eclipse 的 JDK 8

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
public class RuleQuestion {

    //ATTRIBUTES
    @Id
    @GeneratedValue(strategy =GenerationType.AUTO)
    private Long id;

    //QUestion NAME On JSP

    private String jspQuestion;

    //LEVEL of Question in RULE DATA MODEL
    private int level;
    //IF QUESTION has CHILD questions associated with it
    private boolean hasChildren;
    //IS MULTISELECT
    private boolean isMultiselect;
    //POSSIBLE ANSWERS FOR QUESTION
    /*@OneToMany(cascade = CascadeType.ALL, mappedBy = "question")
    private List<RuleAnswer> possibleAnswers =new ArrayList<RuleAnswer>(0);
    *///ANSWER for Question
    private String answer;
    //DEFEAULT ANSWER
    private String defaultAnswer;
    /*//ASSOCIATED CHILDREN QUESTIONS
    private List<RuleQuestion> associatedQuestions;*/

    //Visibility
    private String visibility;

    public RuleQuestion()
    {

    }


    public Long getId() {
        return id;
    }


    public void setId(Long id) {
        this.id = id;
    }


    public String getJspQuestion() {
        return jspQuestion;
    }

    public void setJspQuestion(String jspQuestion) {
        this.jspQuestion = jspQuestion;
    }

    public int getLevel() {
        return level;
    }

    public void setLevel(int level) {
        this.level = level;
    }

    public boolean isHasChildren() {
        return hasChildren;
    }

    public void setHasChildren(boolean hasChildren) {
        this.hasChildren = hasChildren;
    }

    public boolean isMultiselect() {
        return isMultiselect;
    }

    public void setMultiselect(boolean isMultiselect) {
        this.isMultiselect = isMultiselect;
    }

    public String getAnswer() {
        return answer;
    }

    public void setAnswer(String answer) {
        this.answer = answer;
    }

    public String getDefaultAnswer() {
        return defaultAnswer;
    }

    public void setDefaultAnswer(String defaultAnswer) {
        this.defaultAnswer = defaultAnswer;
    }

    public String getVisibility() {
        return visibility;
    }

    public void setVisibility(String visibility) {
        this.visibility = visibility;
    }

}

【问题讨论】:

  • 你很可能在你的休眠配置中错过了hbm2ddl.auto=update休眠属性
  • @orid 我在 hbm 配置中设置了这个属性。我用 update 更新它。不工作。
  • 大家好,我解决了。 1)我用关键字值更改了列名。 (例如级别)2)对于模式中的所有类,我将它们标记为可序列化。 (实现可序列化)

标签: java oracle hibernate annotations hbm2ddl


【解决方案1】:

在@Entity 之后添加以下行。

@Table(name="RuleQuestion")

@Table 注释允许您指定将用于将实体持久保存在数据库中的表的详细信息。

@Table 注释提供了四个属性,允许您覆盖表的名称、目录及其架构,并对表中的列强制执行唯一约束。现在我们只使用表名,即 EMPLOYEE。

同时添加

  @Id
    @GeneratedValue
    @Column(name = "ID")
    private Integer  id;

我有生成表格的类

@Entity
@Table(name = "TRANSACTION")
public class Transaction {

    @Id
    @GeneratedValue
    @Column(name = "ID")
    private Integer  id;

    @Column(name="OCPP_START_TAG_ID",nullable=false)
    private String ocppStartTagId;

}

【讨论】:

  • 嘿,Mahesh 我以前试过,但它没有帮助同样的错误。
  • @Column(name = "ID") 在上述私有 Long Id 中也有
猜你喜欢
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 2010-11-27
相关资源
最近更新 更多