2016-03-29 6 views
0

Ich habe drei Tabellen:Wie Hibernate, um drei Tabellen in einer Zeit abzufragen?

1. org, 
2. product_info 
3. service_info. 

Und Tabelle product_info ist Zuordnungstabelle service_infoManyToMany,

Mittel, viele products Mapping viele services.

Während Tabelle org ist Zuordnungstabelle product_info OneToMany,

Mittel, ein orgmany products haben.

Wenn ich meine Web-initialisieren

enter image description here

Ich möchte die org Tabelle column ist zu sehen. Wie macht man ? Unter Klassen sind die persistenten Klassen für drei Tabellen.

Product Klasse: `

@Entity 
@Table(name="product_service") 
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE) 

public class ProductService implements java.io.Serializable { 

private static final long serialVersionUID = 1L; 

private String id; 
private ServiceInfo serviceInfo;//this is the service table 
private String parammapping; 
private ProductInfo productInfo;//this is the product table 


// Constructors 

/** default constructor */ 
public ProductService() { 
} 

/** minimal constructor */ 
public ProductService(String id) { 
    this.id = id; 
} 



// Property accessors 
@Id 
@Column(name="ID", unique=true, nullable=false, length=50) 
public String getId() { 
    return this.id; 
} 

public void setId(String id) { 
    this.id = id; 
} 
@ManyToOne(fetch=FetchType.LAZY) 
@JoinColumn(name="SERVICEID") 
public ServiceInfo getServiceInfo() { 
    return this.serviceInfo; 
} 

public void setServiceInfo(ServiceInfo serviceInfo) { 
    this.serviceInfo = serviceInfo; 
} 


@Column(name="PARAMMAPPING", length=1000) 
public String getParammapping() { 
    return parammapping; 
} 

public void setParammapping(String parammapping) { 
    this.parammapping = parammapping; 
} 

@ManyToOne(fetch=FetchType.LAZY) 
@JoinColumn(name="PRODUCTID") 
public ProductInfo getProductInfo() { 
    return this.productInfo; 
} 

public void setProductInfo(ProductInfo productInfo) { 
    this.productInfo = productInfo; 
} 

}`

baseOrg Klasse:

@Entity 
@Table(name="base_org") 
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE) 
public class BaseOrg implements java.io.Serializable { 
private static final long serialVersionUID = 1L; 

private String id; 
private String code; 
private String name; 

private List<BaseRuleEngineLog> serviceUsedLogs = new ArrayList<BaseRuleEngineLog>(0); 
private List<ProductInfo> productInfos = new ArrayList<ProductInfo>(0); 
private List<BaseCreditQuery> baseCreditQueries = new ArrayList<BaseCreditQuery>(0); 

// Constructors 

/** default constructor */ 
public BaseOrg() { 
} 

/** minimal constructor */ 
public BaseOrg(String id) { 
    this.id = id; 
} 

@Id 
@Column(name="ID", unique=true, nullable=false, length=50) 
public String getId() { 
    return this.id; 
} 

public void setId(String id) { 
    this.id = id; 
} 

@Column(name="CODE", length=50) 

public String getCode() { 
    return this.code; 
} 

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

@Column(name="NAME", length=200) 

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


@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="baseOrg") 
public List<BaseRuleEngineLog> getServiceUsedLogs() { 
    return this.serviceUsedLogs; 
} 

public void setServiceUsedLogs(List<BaseRuleEngineLog> serviceUsedLogs) { 
    this.serviceUsedLogs = serviceUsedLogs; 
} 
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="baseOrg") 
public List<ProductInfo> getProductInfos() { 
    return this.productInfos; 
} 

public void setProductInfos(List<ProductInfo> productInfos) { 
    this.productInfos = productInfos; 
} 
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="baseOrg") 
public List<BaseCreditQuery> getBaseCreditQueries() { 
    return this.baseCreditQueries; 
} 

public void setBaseCreditQueries(List<BaseCreditQuery> baseCreditQueries) { 
    this.baseCreditQueries = baseCreditQueries; 
} 

}

Produktklasse:

@Entity 
@Table(name="product_info") 
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE) 
public class ProductInfo implements java.io.Serializable { 

private static final long serialVersionUID = 1L; 
private String id; 
private BaseOrg baseOrg;//baseOrg table 
private String code; 
private String name; 
private String orgcode; 

private List<ProductService> productServices = new ArrayList<ProductService>(0); 


// Constructors 

/** default constructor */ 
public ProductInfo() { 
} 

/** minimal constructor */ 
public ProductInfo(String id) { 
    this.id = id; 
} 



// Property accessors 
@Id 
@Column(name="ID", unique=true, nullable=false, length=50) 
public String getId() { 
    return this.id; 
} 

public void setId(String id) { 
    this.id = id; 
} 
@ManyToOne(fetch=FetchType.LAZY) 
@JoinColumn(name="ORGID") 
public BaseOrg getBaseOrg() { 
    return this.baseOrg; 
} 

public void setBaseOrg(BaseOrg baseOrg) { 
    this.baseOrg = baseOrg; 
} 

@Column(name="CODE", length=100) 
public String getCode() { 
    return this.code; 
} 

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

@Column(name="NAME", length=100) 
public String getName() { 
    return this.name; 
} 

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


@Column(name="ORGCODE", length=100) 
public String getOrgcode() { 
    return this.orgcode; 
} 

public void setOrgcode(String orgcode) { 
    this.orgcode = orgcode; 
} 
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="productInfo") 
public List<ProductService> getProductServices() { 
    return this.productServices; 
} 

public void setProductServices(List<ProductService> productServices) { 
    this.productServices = productServices; 
} 

}

Serviceinfo Klasse

@Entity 
@Table(name="service_info") 
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) 
public class ServiceInfo implements java.io.Serializable { 
private static final long serialVersionUID = 1L; 
private String id; 
private String name; 
private String code; 
private List<ProductService> productServices = new ArrayList<ProductService>(0); 

// Constructors 

/** default constructor */ 
public ServiceInfo() { 
} 

/** minimal constructor */ 
public ServiceInfo(String id) { 
    this.id = id; 
} 

// Property accessors 
@Id 
@Column(name="ID", unique=true, nullable=false, length=50) 
public String getId() { 
    return this.id; 
} 

public void setId(String id) { 
    this.id = id; 
} 


@Column(name="NAME", length=100) 
public String getName() { 
    return this.name; 
} 

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

@Column(name="CODE", length=100) 
public String getCode() { 
    return this.code; 
} 

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


@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="serviceInfo") 
public List<ProductService> getProductServices() { 
    return this.productServices; 
} 

public void setProductServices(List<ProductService> productServices) { 
    this.productServices = productServices; 
} 

} product_service table

Danke für mein schlechtes Englisch zu vergeben, das ist mein erstes Mal Frage auf Stack Overflow.

+1

Fügen Sie Ihre persistenten Klassen hinzu. –

+0

Hibernate fragt Tabellen nicht ab, es fragt Entitäten ab. – Tobb

+0

Wenn möglich post Ihre Entity-Klassen ... –

Antwort

0

OK, ich löse es auf. Ich fand es so Probe, lol. Weil die meisten Kriterien gepackt worden sind. Zum ersten Mal möchte ich die HQL verwenden, um es zu lösen, aber vergebens. Ich füge nur diese Sätze hinzu und erhalte es. enter image description here