2016-11-27 63 views
0

我有一个TestEntity,并且此实体可​​以具有父TestEntity。 Spring数据JPA说无法确定类型:abc.entity.TestEntity,在表:test_entity,为列:[org.hibernate.mapping.Column(parent)],我该如何解决这个问题?没有在互联网上找到任何东西,或者我搜索了错误的东西。Spring Data JPA无法确定属于同一类对象的属性的类型

package abc.entity; 

import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 

@Entity 
public class TestEntity { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private long id; 

    private String name; 

    private TestEntity parent; 

    public TestEntity(String name, TestEntity parent) { 
     this.name = name; 
     this.parent = parent; 
    } 

    public long getId() { 
     return id; 
    } 

    public String getName() { 
     return name; 
    } 

    public TestEntity getParent() { 
     return parent; 
    } 
} 

回答

0

好像你已经得到多个TestEntity类与一个包abc.entity.TestEntity和其他与tud.swt16w2.entity包。

所以import正确的实体类,即import tud.swt16w2.entity.TestEntity为您的存储库类进口的一部分。

+0

答案不,我不是,我只是错误地编辑的计算器包名。我修好了,谢谢! – phip1611

0

在父母字段上使用@ManyToOne@JoinColumn(name = "parent_id")

0

这不是Spring Data JPA抱怨,而是Hibernate,底层OR映射器。如果您建模与实体的关系(无论它是相同类型还是不同实体),您需要确定关系的基数,即或者用@OneToOne@ManyToOne对其进行注释,具体取决于您希望实现哪种语义。

1

您必须将@OneToOne@ManyToOne放在parent上。

此外,您应提供无参数构造函数。

顺便说一下,它不是弹簧数据,但JPA提供商谁给你的错误。

这个问题已经在这里JPA inheritance Could not determine type for

相关问题