我正在使用Ebean,我需要最终将“删除级联”作为DDL(数据定义语言)——哪个注解可以做到这一点?我试过了@OneToMany(cascade=CascadeType.REMOVE)但这给出了“删除限制”/不更改默认的“删除限制”? 最佳答案 试试这个@OneToMany(mappedBy="parent",cascade=javax.persistence.CascadeType.REMOVE)@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
我是Hibernate的新手,一直在尝试确定它能为您做什么以及它需要您做什么。一个大的对象正在处理一个对象,该对象具有数据库中尚不存在的依赖项。例如,我有一个Project对象,其中包含接受Manufacturer对象作为其值的Manufacturer字段。在数据库中,我有一个带有mfr_id列的产品表,该列是对制造商表的引用(一种相当典型的单向一对多关系)。如果分配给产品对象的制造商与数据库中已有的制造商相关,则没有问题。但是,当我尝试保存或更新引用尚未保留的制造商的对象时,操作失败并出现异常。Exceptioninthread"Application"org.hibernate.T
我的问题与这个非常相似HibernateBi-DirectionalManyToManyUpdateswithSecondLevelcache我的类(class)如下所示@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL)@EntitypublicclassA{privateintid;privateListlistB;...@Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL)@ManyToMany(cascade={CascadeType.PERSIST,CascadeType.M
我正在使用一个类来保存持久化对象的列表,这些对象的顺序对我来说真的很重要。这个类看起来像这样:publicclassClassimplementsSerializable{privatestaticfinallongserialVersionUID=-8772078256979276783L;@ManyToMany(cascade={CascadeType.MERGE,CascadeType.PERSIST,CascadeType.DETACH,CascadeType.REFRESH})@JoinTable(name="join_table",joinColumns={@JoinCol
我的SpringJPA应用程序中有三个独立的实体-用户、部门、角色我的数据库中有一个连接表来关联这些实体中的每一个:USER_DEPARTMENT_ROLE我的问题是,如何在我的实体类中定义这种关系?我是否必须在每个单独的实体中定义一个@ManyToMany关系?我知道如何定义两个表之间的这种关系,但对于两个以上的表,我不确定从哪里开始。感谢任何帮助! 最佳答案 如果您在连接表中映射了两个以上的关系,那么我建议创建一个单独的实体,用于映射该特定表。问题是您是否可以有一个不同的id列作为人工主键,或者您必须坚持使用三个外键构建的复合主
我有实体类A和C。它们正在映射表tblA和tblC,它们之间存在多对多关系,tblB在它们之间进行映射。tblB包含A_ID、C_ID和SetDate,最后一个是设置日期,因此是关系的属性。我的问题是,我如何最好地映射到这个属性中?目前它们未映射,如下所示:答:@ManyToMany(targetEntity=C.class,cascade={CascadeType.PERSIST,CascadeType.MERGE})@JoinTable(name="tblB",joinColumns=@JoinColumn(name="A_ID"),inverseJoinColumns=@Join
我很难从OneToMany关联中删除child。我的实体:@Entity@Table(name="PERSON")publicclassPersonEntityextendsBaseVersionEntityimplementsComparable{...//bi-directionalmany-to-oneassociationtoProject@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy="person",orphanRemoval=true)privatefinalSetprojects=newH
起初我期望使用CascadeType.REMOVE我将能够删除表中的外键,但我仍然遇到异常。但是用@CascadeOnDelete就可以了。这两个注解有什么区别呢?编辑:我看到了DataNucleus的评论。删除级联来自org.eclipse.persistence.annotations.CascadeOnDelete。这提出了一个问题,这个想法有多好将被使用。 最佳答案 当您使用CascadeType.Remove时,级联将由ORM工具处理,但当您希望级联由数据库处理时,您可以使用@CascadeOnDelete。但是当您使用@
我一直在使用HibernateAnnotations3.4.0在Scala2.8.0中构建一些带注释的域类。它一直工作正常,除了有某些注释将数组作为参数。例如,这是我想在Scala中表达的Java注解:@OneToMany(mappedBy="passport_id",cascade=CascadeType.PERSIST)但是,注解需要一个数组/集合作为输入:[ERROR].../Passport.scala:50:error:typemismatch;[INFO]found:javax.persistence.CascadeType(valuePERSIST)[INFO]requi
我们正在使用JPA从数据库加载一些东西。一些实体之间可能有可选的关系,例如@EntitypublicclassFirst{....@OneToOne(cascade={CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REFRESH,CascadeType.DETACH})@JoinColumns(value={JoinColumn(name="A_ID",referencedColumnName="A_ID",insertable=false,updatable=false),JoinColumn(name="B_ID",refere