Hi!
Ich hab eine Tabelle, deren PrimaryKey aus zwei Spalten (brandid, keyword) besteht. Meine Entityclass benötigt jetzt natürlich noch die Annotation für die Id, aber wie mache ich das bei zwei Spalten? Problem ist zum Beispiel auch, dass in der Brand-Tabelle auch eine Liste mit den Keywords gehalten werden soll über @OneToMany. Da müsste ich dann auch noch beide Spalten angeben, aber das geht ja nicht, da in mappedBy immer nur eine Spalte angegeben werden kann.
So sieht meine Entity für die Tabelle 'brand' aus:
und so die Entity für die Tabelle 'keyword':
Kann mir jemand helfen wie ich das Problem in den Griff kriege?
Danke & viele Grüße
Martin
Ich hab eine Tabelle, deren PrimaryKey aus zwei Spalten (brandid, keyword) besteht. Meine Entityclass benötigt jetzt natürlich noch die Annotation für die Id, aber wie mache ich das bei zwei Spalten? Problem ist zum Beispiel auch, dass in der Brand-Tabelle auch eine Liste mit den Keywords gehalten werden soll über @OneToMany. Da müsste ich dann auch noch beide Spalten angeben, aber das geht ja nicht, da in mappedBy immer nur eine Spalte angegeben werden kann.
So sieht meine Entity für die Tabelle 'brand' aus:
Code:
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name="brand")
public class Brand {
@Id
@GeneratedValue
@Column(name="brandid")
private Long brandId;
@Column(name="name")
private String name;
@Column(name="customerid")
private Long customerId;
@Column(name="added")
private Date added;
@Column(name="lastupdate")
private Date lastUpdate;
@ManyToOne
@JoinColumn(name="customerid", insertable=false, updatable=false)
private Customer customer;
@OneToMany(mappedBy="brandId,keyword")
private List<Keyword> keywords;
public Brand() {
}
/**
* @return the brandId
*/
public Long getBrandId() {
return brandId;
}
/**
* @param brandId the brandId to set
*/
public void setBrandId(Long brandId) {
this.brandId = brandId;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the customerId
*/
public Long getCustomerId() {
return customerId;
}
/**
* @param customerId the customerId to set
*/
public void setCustomerId(Long customerId) {
this.customerId = customerId;
}
/**
* @return the added
*/
public Date getAdded() {
return added;
}
/**
* @param added the added to set
*/
public void setAdded(Date added) {
this.added = added;
}
/**
* @return the lastUpdate
*/
public Date getLastUpdate() {
return lastUpdate;
}
/**
* @param lastUpdate the lastUpdate to set
*/
public void setLastUpdate(Date lastUpdate) {
this.lastUpdate = lastUpdate;
}
/**
* @return the customer
*/
public Customer getCustomer() {
return customer;
}
/**
* @param customer the customer to set
*/
public void setCustomer(Customer customer) {
this.customer = customer;
}
/**
* @return the keywords
*/
public List<Keyword> getKeywords() {
return keywords;
}
}
und so die Entity für die Tabelle 'keyword':
Code:
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="keyword")
public class Keyword {
@Id
@Column(name="brandid")
private Long brandId;
@Column(name="keyword")
private String keyword;
@Column(name="status")
private Integer status;
@Column(name="created")
private Date created;
@Column(name="lastupdate")
private Date lastUpdate;
public Keyword() {
}
/**
* @return the brandId
*/
public Long getBrandId() {
return brandId;
}
/**
* @param brandId the brandId to set
*/
public void setBrandId(Long brandId) {
this.brandId = brandId;
}
/**
* @return the keyword
*/
public String getKeyword() {
return keyword;
}
/**
* @param keyword the keyword to set
*/
public void setKeyword(String keyword) {
this.keyword = keyword;
}
/**
* @return the status
*/
public Integer getStatus() {
return status;
}
/**
* @param status the status to set
*/
public void setStatus(Integer status) {
this.status = status;
}
/**
* @return the created
*/
public Date getCreated() {
return created;
}
/**
* @param created the created to set
*/
public void setCreated(Date created) {
this.created = created;
}
/**
* @return the lastUpdate
*/
public Date getLastUpdate() {
return lastUpdate;
}
/**
* @param lastUpdate the lastUpdate to set
*/
public void setLastUpdate(Date lastUpdate) {
this.lastUpdate = lastUpdate;
}
}
Kann mir jemand helfen wie ich das Problem in den Griff kriege?
Danke & viele Grüße
Martin