Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以将hibernate实体映射为id?_Hibernate_Jpa - Fatal编程技术网

是否可以将hibernate实体映射为id?

是否可以将hibernate实体映射为id?,hibernate,jpa,Hibernate,Jpa,我有一个ID为APK的实体A,它有两个长字段,即其他实体的ID。因此,在实体A上执行添加/删除操作时,我发现Hibernate缓存未命中,为了避免这种情况,我希望使用实体而不是long @Entity @AccessType("field") @Table(name = "A") @XStreamAlias("A") @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class A { @EmbeddedId

我有一个ID为APK的实体A,它有两个长字段,即其他实体的ID。因此,在实体A上执行添加/删除操作时,我发现Hibernate缓存未命中,为了避免这种情况,我希望使用实体而不是long

@Entity
@AccessType("field")
@Table(name = "A")
@XStreamAlias("A")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class A {

    @EmbeddedId
    @AttributeOverrides({
            @AttributeOverride(name = "x", column = @Column(name = "X_ID")),
            @AttributeOverride(name = "y", column = @Column(name = "Y_ID"))})
    private APK id;
   ...................
}


@AccessType("field")
@Embeddable
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class APK implements Serializable {
    protected long x= 0;//this is id of another entity
    protected long y= 0;//this is id of another entity    
    ......
}

但rhus没有解决缓存未命中的问题

@Entity
@AccessType("field")
@Table(name = "A")
@XStreamAlias("A")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class A implements SerializableObject {

    @Id
    @JoinColumn(name = "X_ID", nullable = false)
    @ManyToOne(targetEntity = X.class)
    protected X x;

    @Id
    @JoinColumn(name = "Y_ID", nullable = false)
    @ManyToOne(targetEntity = Y.class)
    protected y;
...........
}