【问题标题】:Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on XX references an unknown entity: YY引起:org.hibernate.AnnotationException:XX 上的@OneToOne 或@ManyToOne 引用了一个未知实体:YY
【发布时间】:2018-02-03 13:35:05
【问题描述】:

这里我的目标实体 User.class 存在于一个单独的 jar 文件中。

package com.aa.model;
    import javax.persistence.Entity;
    import javax.persistence.JoinColumn;
    import javax.persistence.ManyToOne;
    import javax.persistence.OneToOne;

@Entity
@Table(name = "ABC")
public class Abc implements Serializable{
---    
@OneToOne(targetEntity=com.bb.model.User.class)
    @JoinColumn(name  = "CREATED_BY")
    private User createdBy;
}
---
}

目标类:

package com.bb.model;
    import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.Table;

@Entity
@Table(name="USER")
public class User implements Serializable {
---
}

我收到以下错误:

Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.aa.model.Abc.createdBy references an unknown entity: com.bb.model.User
    at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:109)
    at org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1598)

【问题讨论】:

标签: java hibernate


【解决方案1】:

在 Abc 类中,你写了

@OneToOne(targetEntity=com.bb.User.class)

而不是

@OneToOne(targetEntity=com.bb.model.User.class)

你也忘记了 com.bb.model 包的导入

import com.bb.model.User;

【讨论】:

  • 它只是正确的..我在编辑时写错了。
  • 对我来说似乎是实体映射错误。也许这有帮助:thoughts-on-java.org/…
  • 映射没有问题,因为如果我将类移动到当前的微服务并使用它而不是单独的 jar 文件中的那个,代码可以正常工作。
  • 所以你使用了多个 jars 文件,对吧?您可以尝试该解决方案吗:您遇到的错误似乎相同。 stackoverflow.com/questions/39546120/…
  • 我尝试过:entitymanager.packagesToScan:com.currrentproject.*,com.externaljar.*entitymanager.packagesToScan: com.*,但是两种方式都失败了
猜你喜欢
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 2017-07-15
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
相关资源
最近更新 更多