@Entity
public class E {
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
int id;
String name;
@OneToMany(mappedBy = "e")
@MapKeyColumn(name = "kkk")
Map<String,F> f = new HashMap<String,F>();
}
@Entity
public class F {
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
int id;
String name;
@ManyToOne
E e;
}
public class MapRelation {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence
.createEntityManagerFactory("forcascade");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
E e = new E();
e.name = "i am e!";
F f1 = new F();
f1.name = "i am f1!";
F f2 = new F();
f2.name = "i am f2!";
f1.e = e;
f2.e = e;
em.persist(f1);
em.persist(f2);
e.f.put("f1", f1);
e.f.put("f2", f2);
em.persist(e);
em.getTransaction().commit();
em.close();
emf.close();
}
}
以上代码,JPA2.0双向一对多,在EclipseLink以及OpenJPA下运行没有问题,两个key "f1"与"f2"都存入数据库。但在Hibernate下,key没有存入数据库,失败鸟...
我们想,双向一对多,没有中间表,One将ID以及key存在Many表中,那么,应该可以在Many中设置One的persist cascade,最后提交Many既可以了...
@ManyToOne(cascade = {PERSIST,REMOVE})
E e;
在transaction之间的代码是这样的了,
E e = new E();
e.name = "i am e!";
F f1 = new F();
f1.name = "i am f1!";
f1.e = e;
e.f.put("f1", f1);
em.persist(f1);
F f2 = new F();
f2.name = "i am f2!";
f2.e = e;
e.f.put("f2", f2);
em.persist(f2);
高兴的是,EclipseLink与OpenJPA仍然没有让我们失望;杯具地是,Hibernate仍然让我们失望了...
分享到:
相关推荐
在这个`persistence-2.0-all.zip`压缩包中,包含了JPA 2.0的核心库`javax.persistence_2.0.0.jar`,源代码,JavaDoc文档,以及一个schema文件,这些都是开发者深入了解和使用JPA 2.0的重要资源。 **JPA 2.0 的核心...
- **一对多、多对一映射**:使用`@ManyToOne`、`@OneToMany`等注解表示一对多或多对一的关系。 - **多对多映射**:使用`@ManyToMany`注解表示多对多的关系。 #### 三、高级主题 ##### 3.1 查询语言 - **JPQL**:...
2. **添加依赖**:确保你的项目包含Spring、Hibernate(JPA实现)和JPA相关的库。在Maven或Gradle的pom.xml或build.gradle文件中,添加相应的依赖项。 3. **实体类**:编写表示数据库表的Java类,并使用JPA注解如@...
- "hibernate-JPA"可能是指Hibernate作为JPA的实现, Hibernate提供了丰富的功能,包括第一级缓存、第二级缓存、事务管理等,使得JPA的使用更加方便。 总之,JPA 2.0为Java开发者提供了强大且灵活的ORM解决方案,...
Java persistence api, jpa 2.0最终版使用规范, 资源是压缩包, 下载后解压缩文件,然后重命名persistence-2_0-final-spec文件,添加后缀 .pdf 原始文件的类型时pdf的
- jsr-317-***:提供了反馈JPA 2.0规范的电子邮件地址,开发者可以使用此邮箱提交他们对规范的意见和建议。 - Final Release:表示这是JPA 2.0规范的最终版本,意味着规范已经稳定并且可供实现。 - Copyright 2009 ...
Spring Data JPA 是 Spring 框架的一个子项目,它简化了数据访问层的开发,提供了对 Java Persistence API(JPA)的高度抽象和自动化。在 Spring Data JPA 2.0 版本中,它引入了更多优化和改进,使得开发者能更高效...
hibernate-jpa-2.0-api-1.0.1.Final-sources.jar hibernate jpa 源代码
hibernate-jpa-2.0-api-1.0.1.Final.jar
jpa 2.0 jar 包 下载 jpa 2.0 jar 包 下载 jpa 2.0 jar 包 下载
JPA支持多种关系映射,如一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)和多对多(@ManyToMany)。通过这些注解,可以轻松地处理实体之间的关联关系。 6. **事务管理** JPA 2.0提供了一套完整...
antlr-2.7.6.jar, cglib-2.2.jar, commons-collections-3.1.jar, ...hibernate-jpa-2.0-api-1.0.0.Final.jar, javassist-3.9.0.GA.jar, jta-1.1.jar, slf4j-api-1.6.1.jar, slf4j-log4j12-1.6.1.jar
主要讲述JPA2.0规范,Struct2 Spring注解等技术
2. **Hibernate JPA的扩展性**:Hibernate是JPA的一个实现,以其强大的功能和灵活性赢得了广泛认可。Hibernate JPA 2.0 API在JPA的基础上进一步提供了丰富的功能,包括事务管理、查询语言HQL和 Criteria API等。 3....
5. **关联管理**:JPA支持一对一、一对多、多对一和多对多的关联关系。关联可以通过`@OneToOne`、`@OneToMany`、`@ManyToOne`和`@ManyToMany`注解来定义,同时可以配置懒加载或急加载策略。 6. **继承策略**:JPA...
在本主题中,我们将深入探讨使用Hibernate注解来实现JPA的一对多、多对多和多对一的关系映射。 1. **一对多关系**: 在现实世界中,一个老师可以教多个学生,或者一个班级可以包含多个学生,这就是典型的一对多...
通过以上对 OpenJPA 2.0 文档的部分内容的解读,我们了解了 OpenJPA 2.0 的核心特性和使用方法。它不仅遵循 JPA 规范,还提供了丰富的扩展功能,使得开发者能够更加灵活地实现数据访问逻辑。无论是对于初学者还是...
**JPA 2 一对多双向关联关系** Java Persistence API(JPA)是Java平台上的一个标准,用于处理对象关系映射(ORM),使得开发者可以使用面向对象的方式操作数据库。在JPA中,一对多关联关系是常见的实体间关系类型...
java.lang.NoClassDefFoundError: javax/persistence/spi/ProviderUtil 或javax/persistence/entitylistener问题