相关疑难解决方法(0)

使用ManyToOne获取org.hibernate.PropertyAccessException的JPA Composite键:无法通过反射设置器设置字段值

我有一个复合键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)

java hibernate jpa one-to-many many-to-one

10
推荐指数
2
解决办法
6468
查看次数

JPA @EmbeddedId没有生成序列

我有一个表,其复合主键包含一个序列和两个外键我能够持久化我的实体类但它不是根据序列生成的.具有复合主键的表包含一个序列和两个外键,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)

jpa auto-generate

7
推荐指数
2
解决办法
9061
查看次数

标签 统计

jpa ×2

auto-generate ×1

hibernate ×1

java ×1

many-to-one ×1

one-to-many ×1