在JPA 1.0中,cascade的类型包含:MERGE, REFRESH, PERSIST, REMOVE, ALL
用过Hibernate的同学们都知道,以上类型和Hibernate的cascade相比,少了delete-orphan这种类型。而delete- orphan是很有用的,不知道为什么JPA 1.0并不支持。听说JPA 2.0将要加入,呵呵……总之,这再次证明了JPA 1.0的功能只是Hibernate功能的一个不完整的子集。
既然我们的项目选择了使用JPA 1.0,那么我们就需要找出在JPA 1.0下实现delete-orphan的方法。好在我们使用JPA的Hibernate实现(相信这也是大部分JPA使用者的使用方式),所以就有了以下的解决方法,也就是在Entity中加入Hibernate的Annotation:
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
...
@Entity
@Table(name = "ORDERS")
public class Order implements Auditable, Serializable
{
...
@OneToMany(mappedBy = "order", cascade = CascadeType.ALL)
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
private List<OrderItem> orderItems;
...
}
注意@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)这句。经测试后确认,加入这句后,JPA底层的Hibernate就会完成delete-orphan的动作,没有这句则不行。Hibernate确实够强大,发现JPA 的annotation不管用,如果发现自己的annotation,还是会自己搞定,牛……
灵感从这里来。
分享到:
相关推荐
jar包,官方版本,自测可用
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
**S2Hibernate-JPA 1.0:Java Persistence API与S2Hibernate的融合** ...通过深入理解和使用S2Hibernate-JPA 1.0,开发者能够更好地驾驭Java世界的ORM实践,从而在项目中实现高效的数据存储和检索。
根据提供的信息,我们可以从标题、描述和部分内容中提取出关于JPA 1.0中文手册的知识点。 首先,标题中提到了“jpa1.0中文手册”,指出了文档所针对的技术是Java Persistence API(JPA)的1.0版本。JPA是一个Java...
在本篇《JPA学习总结(三)--JPAOneToMany双向关联》中,我们将深入探讨Java Persistence API (JPA)中的OneToMany关系映射,这是一种在数据库表之间建立一对多关联的方式。JPA作为ORM(对象关系映射)框架,允许我们...
这个特定的模块"myfaces-extcdi-jpa1-module-impl-1.0.6"是针对JPA1的实现,可能包含了对JPA 1.0规范的支持和整合。 【描述】"ddth-osgicommons.zip" 提到了DDTH(Dang Dang Too)的OSGi兼容Java公共库和实用工具。...
java.lang.NoClassDefFoundError: javax/persistence/spi/ProviderUtil 或javax/persistence/entitylistener问题
`persistence-api-1.0.x.jar`文件包含了JPA的API实现。 4. **实体生命周期回调**:通过注解如`@PrePersist`、`@PostLoad`等,开发者可以定义在对象持久化前后的回调方法,以实现一些额外的业务逻辑。 5. **查询...
总的来说,`hibernate-jpa-2.1-api-1.0.0.final.jar`为开发者提供了丰富的JPA 2.1特性的实现,使得在Java项目中使用Hibernate进行数据库操作变得更加便捷和标准化。通过深入理解和熟练运用这个API,我们可以构建出...
2. **关联类型**:默认情况下,`@OneToMany`的关系是无序的,可以通过`@OrderBy`来指定排序规则。同时,可以设置`cascade`属性来决定操作父实体时是否同步处理子实体,如`CascadeType.ALL`表示所有操作都会影响到子...
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码 hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码
hibernate-jpa-2.0-api-1.0.1.Final-sources.jar hibernate jpa 源代码
hibernate-jpa-2.1-api-1.0.0.Final.jar官方下载,请放心使用
hibernate-jpa-2.0-api-1.0.1.Final.jar
3. **配置JPA属性文件**:在项目的`src/main/resources/META-INF`目录下创建`persistence.xml`文件,配置JPA的相关属性。例如: ```xml <?xml version="1.0" encoding="UTF-8"?> xmlns:xsi=...
ORM 映射增强特性,包括:支持通过使用 @ElementCollection 标注来增强 collections, maps 和 lists( 这里不是指实体之间的关联关系 ) 集合,支持 map 的单向 one-to-many 关联 (JPA1.0 只允许双向 one-to-many ...
使用`@OneToMany`注解,可以设置`fetch`策略(默认为`LAZY`,表示延迟加载)和`cascade`属性(如`CascadeType.ALL`,表示级联操作)。 3. **多对一(ManyToOne)**: 多个实体可以关联到一个实体,如多个学生属于一...
java运行依赖jar包