Java 在Hibernate中使用级联时阻止更新或插入实体
我有一个实体,enthesaplasm,这个实体与EntCariHareketler实体有关系。我在EntCariHareketler的EnteSaplasm实体中有一个外键。我想设置它们之间的关系,但我不想更新、插入或删除EntCariHareketler实体上的操作。只有我想读取第二个实体(EntCariHareketler)上的操作。我尝试了级联类型,但没有成功 下面你可以看到我的部分实体Java 在Hibernate中使用级联时阻止更新或插入实体,java,hibernate,jpa,orm,hibernate-mapping,Java,Hibernate,Jpa,Orm,Hibernate Mapping,我有一个实体,enthesaplasm,这个实体与EntCariHareketler实体有关系。我在EntCariHareketler的EnteSaplasm实体中有一个外键。我想设置它们之间的关系,但我不想更新、插入或删除EntCariHareketler实体上的操作。只有我想读取第二个实体(EntCariHareketler)上的操作。我尝试了级联类型,但没有成功 下面你可以看到我的部分实体 @Entity @Table(name = "XOZ_HESAPLASMA") public cla
@Entity
@Table(name = "XOZ_HESAPLASMA")
public class EntHesaplasma {
Integer hesaplasmaid;
EntCariHareketler carihareket;
String hesaplasmagrup;
@Id
@GeneratedValue
@Column(name = "hesaplasmaid", unique = true, nullable = false)
public Integer getHesaplasmaid() {
return hesaplasmaid;
}
public void setHesaplasmaid(Integer hesaplasmaid) {
this.hesaplasmaid = hesaplasmaid;
}
@OneToOne(fetch= FetchType.LAZY)
@JoinColumn(name="carihareketid")
public EntCariHareketler getCarihareket() {
return carihareket;
}
public void setCarihareket(EntCariHareketler carihareket) {
this.carihareket = carihareket;
}
@Column(name="hesaplasmagrup")
public String getHesaplasmagrup() {
return hesaplasmagrup;
}
public void setHesaplasmagrup(String hesaplasmagrup) {
this.hesaplasmagrup = hesaplasmagrup;
}
这是EntCarihareketler实体
@Entity
@Table(name = "CARI_HESAP_HAREKETLERI")
public class EntCariHareketler {
private Integer cha_RECno;
@Id
@GeneratedValue
@Column(name = "cha_recno", unique = true, nullable = false)
public Integer getCha_RECno() {
return cha_RECno;
}
public void setCha_RECno(Integer cha_RECno) {
this.cha_RECno = cha_RECno;
}
当我想保存EnteSaplas对象时,我不想更新或插入entCariHareketler实体,我得到了一个类似entCariHareketler实体无法插入的异常。但我不想插入entcarihareketler实体。hibernate尝试插入该实体(顺便说一句,在entcarihareket实体中,我不使用属于主键的某些字段。我只使用cha_Recno作为主键。这是复合主键中的重要字段。)
entcariHareKeller
,只需使用注释即可insertable
和updateable
@JoinColumn
属性设置为false
:
@OneToOne(fetch= FetchType.LAZY)
@JoinColumn(name="carihareketid", insertable = false, updatable = false)
public EntCariHareketler getCarihareket() {
return carihareket;
}
我不明白你在问什么。与其告诉我们你不想做什么,不如给我们解释一下你想做什么,举个例子,展示一下你做了什么?“但我没能成功”:发生了什么?例外?意外行为?我尝试了insertable=false和Updateable=false,但是它更新了第二个表,但是@immutable可以工作并阻止更新。非常感谢。:)
updateable=false
不应传播FK更改,但仍然允许更改EntCariHareketler
。如果您不想更改,则需要将EntCariHareketler
注释为@Immutable。
@OneToOne(fetch= FetchType.LAZY)
@JoinColumn(name="carihareketid", insertable = false, updatable = false)
public EntCariHareketler getCarihareket() {
return carihareket;
}