我有一个复合键ContractServiceLocationPK做出来的三个ID.( ,,contractId 在嵌入类型长).使用此复合键的类使用注释将这些ID映射到其对象.这是它的样子(删除了setter/getters和不相关的属性):locationIdserviceIdContractServiceLocation@MapsId
合同
@Entity
@Table(name = "Contract")
public class Contract implements Serializable {
public Contract() {
}
@Id
@GeneratedValue
private long id;
@OneToMany(mappedBy = "contract", cascade = CascadeType.ALL, fetch= FetchType.EAGER)
Collection<ContractServiceLocation> contractServiceLocation;
}
Run Code Online (Sandbox Code Playgroud)
ContractServiceLocationPK
@Embeddable
public class ContractServiceLocationPK implements Serializable {
private long contractId;
private long locationId;
private long serviceId;
}
Run Code Online (Sandbox Code Playgroud)
ContractServiceLocation
@Entity
@Table(name="Contract_Service_Location")
public class ContractServiceLocation implements Serializable {
@EmbeddedId
ContractServiceLocationPK id;
@ManyToOne(cascade = CascadeType.ALL)
@MapsId("contractId")
Contract contract;
@ManyToOne(cascade = CascadeType.ALL) …Run Code Online (Sandbox Code Playgroud) 我有一个表,其复合主键包含一个序列和两个外键我能够持久化我的实体类但它不是根据序列生成的.具有复合主键的表包含一个序列和两个外键,maven中的hbm2java给出以下实体
这是主要实体
package aop.web.teacher.rmodels;
// Generated Dec 14, 2010 8:45:32 PM by Hibernate Tools 3.2.2.GA
import java.util.Date;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
/**
* Schoolmaster generated by hbm2java
*/
@Entity
@Table(name = "schoolmaster", schema = "public")
public class Schoolmaster implements java.io.Serializable {
private SchoolmasterId id;
...
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "id", column = @Column(name = "id", nullable = false)),
@AttributeOverride(name = "districtId", column …Run Code Online (Sandbox Code Playgroud)