2014-09-01 35 views
0

我试图用Hibernate作为提供程序来映射我的实体与JPA 2,但不幸的是我有一个异常,可能由几个人知道,但是甚至寻找在网络我无法找到一个soulution 我想也许是因为我使用Spring数据JPA环境:扩展AbstractAuditable(Spring Data)在ManyToOne关系上导致org.hibernate.MappingException

编辑我删除extends AbstractAuditable,并创建了ID,那么错误转移到另一个实体AbstractAuditable,所以我正在使用这个类错误?

stracktrace的相关部分说:

Caused by: org.hibernate.MappingException: Could not determine type for: java.util.Collection, at table: car, for columns: [org.hibernate.mapping.Column(gearAssigments)] 

下实体参与:

GearAssigment

@Entity 
@Table(name = "gear_assigment") 
public class GearAssigment extends AbstractAuditable<User, Integer> { 

    private Integer usedQuantity; 

    private Car car; 

    private Gear gear; 

    public GearAssigment(int id) { 
     this.setId(id); 
    } 

    public GearAssigment() { 
    } 

    @Column(name = "used_quantity") 
    public Integer getUsedQuantity() { 
     return usedQuantity; 
    } 

    public void setUsedQuantity(Integer usedQuantity) { 
     this.usedQuantity = usedQuantity; 
    } 

    @ManyToOne 
    @JoinColumn(name = "car",referencedColumnName = "id") 
    public Car getCar() { 
     return car; 
    } 

    public void setCar(Car car) { 
     this.car = car; 
    } 

    @ManyToOne 
    @JoinColumn(name = "gear",referencedColumnName = "id") 
    public Gear getGear() { 
     return gear; 
    } 

    public void setGear(Gear gear) { 
     this.gear = gear; 
    } 
} 

汽车

@Entity 
@Table(name = "car") 
public class Car extends AbstractAuditable<User, Integer> { 

    private String name; 

    private Category category; 

    private Collection<GearAssigment> gearAssigments; 

    public Car(Integer id) { 
     this.setId(id); 
    } 

    public Car() { 
    } 

    @Column(name = "name") 
    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    @Column(name = "category") 
    @Enumerated(EnumType.STRING) 
    public Category getCategory() { 
     return category; 
    } 

    public void setCategory(Category category) { 
     this.category = category; 
    } 

    @OneToMany(mappedBy = "car") 
    public Collection<GearAssigment> getGearAssigments() { 
     return gearAssigments; 
    } 

    public void setGearAssigments(Collection<GearAssigment> gearAssigments) { 
     this.gearAssigments = gearAssigments; 
    } 
} 

个在数据库中的所有表id作为主键,AbstractAuditable extends AbstractPersistable它已经映射id colunm@GeneratedValue和它们映射与@MappedSuperClass

回答

0

没关系,AbstractAuditable领域与javax.persistence注释在实地一级注释,而不是在方法层面正如我在我的实体上所做的那样,您重写Spring的类或在字段级别注释所有实体字段。所以休眠不要混合它们

相关问题