2014-10-17 12 views
9

Nel tentativo di configurare le entità, ma in letargo getta la seguente eccezione:eccezione mapping Hibernate - Impossibile determinare il tipo di:

org.hibernate.MappingException: Could not determine type for: com.sd.entity.SDUserProductAcess, at table: SDUser, for columns: [org.hibernate.mapping.Column(productAccess)] 
[PersistEngine] Failed to initialize persistence engine!java.lang.NullPointerException 

Questi sono i miei Entità:

@Entity 
@Inheritance(strategy = InheritanceType.JOINED) 
public class SDObject 
{ 

@Id 
@GeneratedValue 
private long sdId; 
private String sdType; 

public long getSdId() 
{ 
    return sdId; 
} 

public void setSdId(long sdId) 
{ 
    this.sdId = sdId; 
} 

public String getSdType() 
{ 
    return sdType; 
} 

public void setSdType(String sdType) 
{ 
    this.sdType = sdType; 
} 
} 

la prossima:

@Entity 
public class SDUser extends SDObject 
{ 

@Column(unique = true) 
private String code; 
private String password; 
private SDUserProductAcess productAccess; 

public String getCode() 
{ 
    return code; 
} 

public void setCode(String code) 
{ 
    this.code = code; 
} 

public String getPassword() 
{ 
    return password; 
} 

public void setPassword(String password) 
{ 
    this.password = password; 
} 

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) 
public SDUserProductAcess getProductAccess() 
{ 
    return productAccess; 
} 

public void setProductAccess(SDUserProductAcess productAccess) 
{ 
    this.productAccess = productAccess; 
} 

L'ultima:

0.123.
@Entity 
public class SDUserProductAcess extends SDObject 
{ 

private boolean adm; 

public boolean isAdm() 
{ 
    return adm; 
} 

public void setAdm(boolean adm) 
{ 
    this.adm = adm; 
} 
} 

Hibernate non può determinare il tipo per colonna productAccess, situato nell'entità SDUser. Sono nuovo di Hibernate e non riesco a capire cosa sta succedendo.

Devo fornire qualche tipo di ID?

Grazie !!

risposta

13

In SDUser è necessario aggiungere le informazioni di associazione sulla SDUserAccess:

@ManyToOne 
@JoinColumn(name = "sdId") 
private SDUserProductAcess productAccess; 
Problemi correlati