如何在一个事务中保留两个实体?

时间:2014-03-26 14:12:46

标签: jpa jboss ejb

首先:我的英语不好......

我有类似的情况:

@Entity
public Arm {

    @Id // sequence bla bla bla
    int id;

    @JoinColum
    private Hand mao;

}

@Entity
public Hand {

    @Id // sequence bla bla bla
    private id;

    @Colum
    private String tamanho;

}

@Stateless
public void HandEJB {

    @PersistenceContext
    private EntityManager manager;

    public void salvar(Braco braco){
        manager.persist(mao);
        manager.persist(braco);
    }

}

== TABLE_HAND ==

ID
SIZE

== TABLE_ARM ==

ID
SIZE
FK_HAND (NOT NULL)

首先我坚持我的手..在此之后......我用手握住我的手臂.. 但是(hibernate / jpa / jboss):

  

违反了完整性约束(SA.FK_ED111_HO_REFERENCE_ED110_HO) - 未找到父密钥

任何想法?

1 个答案:

答案 0 :(得分:0)

我没有看到你将这两个实体联系在一起。如果您的目标是将手分配到手臂,请尝试过:

Arm a = new Arm();
Hand h = new Hand();
a.setHand(h);

然后

manager.persist(a);

您可能希望在Arm的Hand字段中注释@OneToOne(cascade = CascadeType.PERSIST)