gpt4 book ai didi

java - 组织.hibernate.AnnotationException : @OneToOne or @ManyToOne on references an unknown entity

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:07:44 25 4
gpt4 key购买 nike

我收到以下 Hibernate 异常:

org.hibernate.AnnotationException: @OneToOne or @ManyToOne on cz.rohan.dusps.model.Switchport.konfiguracniTemplateAccess references an unknown entity: cz.rohan.dusps.model.KonfiguracniTemplate
org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:103)
org.hibernate.cfg.AnnotationConfiguration.processEndOfQueue(AnnotationConfiguration.java:541)
org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:523)
org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:380)
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1377)
org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)
cz.rohan.dusps.helper.SessionFactoryHelper.initFactory(SessionFactoryHelper.java:122)
cz.rohan.dusps.helper.SessionFactoryHelper.getSessionFactory(SessionFactoryHelper.java:134)
cz.rohan.dusps.filter.HistorieZmenFilter.doFilter(HistorieZmenFilter.java:102)
cz.rohan.dusps.filter.CharsetFilter.doFilter(CharsetFilter.java:41)

在与不同的人一起解决这个问题大约 20 个小时,阅读了所有可能的博客或论坛之后,我真的很绝望。

这是一个中型项目。我应该提到数据库是 Postgres 9.1,我们使用建模工具生成数据库。 Hibernate 连接到数据库但不生成它。

我在数据库中创建了一个新实体,它叫做“KonfiguracniTemplate”(配置模板)。我已经创建了模型、 Controller 、表单、 validator 、.jsp,所有这些基本上都是从具有相似性质的现有实体中 1:1 复制的。我现在可以使用 KonfiguracniTemplate,CRUD 完全正常工作。

当我从名为 Switchport 的实体引用此 KonfiguracniTemplate 时,问题就来了。在数据库中,两者之间存在关系:

  • 开关端口 1:1 ... 0:N KonfiguracniTemplate(开关端口始终引用 KonfiguracniTemplate;KonfiguracniTemplate 可以被引用零次或多次)
  • Switchport 具有此关系的 FK konfiguracniTemplateAccess_id。

在 .../model/Switchport.java 中,关系被映射,就像所有其他正在工作的关系一样:

@ManyToOne
@JoinColumn(nullable = false)
private KonfiguracniTemplate konfiguracniTemplateAccess;

我尝试过各种形式:

@ManyToOne
@JoinColumn(name="konfiguracnitemplateaccess_id", nullable = false)
private KonfiguracniTemplate konfiguracniTemplateAccess;

@ManyToOne(targetEntity=KonfiguracniTemplate.class)
@JoinColumn(name="konfiguracnitemplateaccess_id", nullable = false)
private KonfiguracniTemplate konfiguracniTemplateAccess;

我也检查过:

  • 两个实体在同一个包中
  • 它们都使用“import javax.persistence.Entity;”注释为“@Entity”
  • 构建不会产生错误/警告消息
  • 只要把Switchport中的引用注释掉就万事大吉

无论我尝试什么,我都无法摆脱“引用未知实体”异常。有人可以分享正在发生的事情或者如何调试问题的想法吗?帖子顶部的堆栈跟踪是我在日志中得到的所有信息。

非常感谢所有输入!

最佳答案

只需将类Team 添加到“hibernate-cfg.xml”文件中,因为Hibernate 不添加就无法识别。

关于java - 组织.hibernate.AnnotationException : @OneToOne or @ManyToOne on <entity> references an unknown entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7349810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com