【问题标题】:@OneToOne or @ManyToOne error@OneToOne 或 @ManyToOne 错误
【发布时间】:2015-10-05 16:17:41
【问题描述】:

我创建了一些实体,但是当我在服务器上运行时出现以下错误:

org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318)

[spring-orm-4.1.1.RELEASE.jar:4.1.1.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1627) [spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE] 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1564) [spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE] ... 35 更多 引起:org.hibernate.AnnotationException:@OneToOne 或 @ManyToOne 在 .....entities.exams.answer.questionId 上引用了一个未知实体: .....entities.exams.question

这里是实体的代码

@Entity
@Table(schema="..",name = "exam_answers")

@NamedQueries({
        @NamedQuery(name = "answer.findAll", query = "SELECT s FROM answer s"),
        @NamedQuery(name = "answer.findByanswerId", query = "SELECT s FROM answer s WHERE s.answerId = :answerId"),
        @NamedQuery(name = "answer.findByquestionId", query = "SELECT s FROM answer s WHERE s.questionId = :questionId"),
        @NamedQuery(name = "answer.findByanswer", query = "SELECT s FROM answer s WHERE s.answer = :answer") })
@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL, region = "exams")
public class answer implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = Generationquestion.IDENTITY)
    @Basic(optional = false)
    @Column(name = "answer_id")
    private Integer answerId;
    @JoinColumn(name = "question_id")
    @ManyToOne(optional = false)
    private question questionId;
    @JoinColumn(name = "exam_id", referencedColumnName = "exam_id")
    @ManyToOne(optional = false)
    private exam examId;
    @Size(max = 500)
    @Column(name = "answer")
    private String answer;

    public answer() {
    }

    public answer(Integer answerId) {
        this.answerId = answerId;
    }

...SETTERS AND GETTERS... 
}


@Entity
@Table(schema="..",name = "question")
@NamedQueries({
    @NamedQuery(name = "question.findAll", query = "SELECT s FROM question s"),
    @NamedQuery(name = "question.findByquestionId", query = "SELECT s FROM question s WHERE s.questionId = :questionId"),
    @NamedQuery(name = "question.findByLabel", query = "SELECT s FROM question s WHERE s.label = :label"),
    @NamedQuery(name = "question.findByquestion", query = "SELECT s FROM question s WHERE s.question = :question"),
    @NamedQuery(name = "question.findByInputquestion", query = "SELECT s FROM question s WHERE s.inputquestion = :inputquestion"),
    @NamedQuery(name = "question.findByOptions", query = "SELECT s FROM question s WHERE s.options = :options")})
public class question implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = Generationquestion.IDENTITY)
    @Basic(optional = false)
    @Column(name = "question_id")
    private Integer questionId;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "label")
    private String label;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 20)
    @Column(name = "question")
    private String question;
    @Size(max = 50)
    @Column(name = "input_question")
    private String inputquestion;
    @Size(max = 500)
    @Column(name = "options")
    private String options;

    public question() {
    }

    public question(Integer questionId) {
        this.questionId = questionId;
    }

【问题讨论】:

  • 你没有解释你看到的错误信息。
  • @SJuan76 我编辑了错误

标签: java jboss entity wildfly


【解决方案1】:

这是错误原因

Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on
.....entities.exams.answer.questionId references an unknown entity:     
.....entities.exams.question

您是否已将entities.exams.question 添加到休眠配置中?

还有几点:

  1. 在 java 中,类应以大写字母开头。它们应该被称为问答而不是问答
  2. 在您的 Answer 类中,不应将该属性称为 questionId,因为这会造成混淆。 id 这个词应该只用于 Long / Integer 属性(可能时不时地使用 String)

【讨论】:

  • 这有什么问题?我添加了一个私人问题,所以我猜这个查询是正确的@Lance Java
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-27
  • 2017-07-15
  • 1970-01-01
相关资源
最近更新 更多