【发布时间】:2015-06-18 06:59:09
【问题描述】:
我有一个实体 EntHesaplasma ,这个实体与 EntCariHareketler 实体有关系。我在 EntCariHareketler 的 EntHesaplasma 实体中有一个外键。我想设置它们之间的关系,但我不想更新、插入或删除对 EntCariHareketler 实体的操作。只有我想读取第二个实体(EntCariHareketler)的操作。我尝试了 Cascading types ,但我无法成功。
您可以在下面看到我的部分实体
@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;
}
当我想保存 enthesaplasma 对象时,我不想更新或插入 entCariHareketler 实体,我遇到了一个异常,比如 entcarihareketler 实体无法插入。但我不想插入 entcarihareketler 实体。 hibernate 尝试插入该实体,(顺便说一句,在 entcarihareket 实体中,我不使用一些属于主键的字段。我只使用 cha_Recno 作为主键。这是复合主键中的重要字段。)
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = null;
try {
EntHesaplasma hesaplasma= new EntHesaplasma();
hesaplasma.setHesaplasmagrup("a record");
// related entcarihareketler entity
EntCariHareketler entCariHareketler= new EntCariHareketler();
// we set entcarihareketler id (1212) as primary key )
entCariHareketler.setCha_RECno(1212);
tx=session.beginTransaction();
session.save(hesaplasma);
tx.commit();
} catch (HibernateException e) {
if (tx != null)tx.rollback();
e.printStackTrace();
} finally {
session.close();
}
【问题讨论】:
-
我不明白你在问什么。与其告诉我们您不想做什么,不如向我们解释您想做什么,举个例子,展示您的尝试?
-
“但我无法成功”:发生了什么?例外?意外行为?
标签: java hibernate jpa orm hibernate-mapping