`

基于jpa的一对一的主键测试

阅读更多

人员表:一个人只能对应一个身份证

@Entity
@Table(name="bb_person")
public class Person implements Serializable
{
 /**/
    private static final long serialVersionUID = 1L;
   
    private int personId;
    private String personName;
    private IdCard idcard = new IdCard();
 
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="person_id")
    public int getPersonId()
    {
     return personId;
    }
 
    public void setPersonId(int personId)
    {
     this.personId = personId;
    }
 
    public String getPersonName()
    {
     return personName;
    }
 
    public void setPersonName(String personName)
    {
     this.personName = personName;
    }
   
    @OneToOne(cascade=CascadeType.ALL)
    @PrimaryKeyJoinColumn
    public IdCard getIdcard()
    {
     return idcard;
    }
 
    public void setIdcard(IdCard idcard)
    {
     this.idcard = idcard;
    }
 
}

 身份证表:一个身份证只能对应一个人

 @Entity
@Table(name="bb_idcard")
public class IdCard
{
 private int cardId;
 private String cardNo;
 private Person person;
 
 @Id
 @GeneratedValue(strategy=GenerationType.IDENTITY)
    public int getCardId()
    {
     return cardId;
    }
 
    public void setCardId(int cardId)
    {
     this.cardId = cardId;
    }
 
    public String getCardNo()
    {
     return cardNo;
    }
 
    public void setCardNo(String cardNo)
    {
     this.cardNo = cardNo;
    }
 
    @OneToOne(mappedBy="idcard")
    public Person getPerson()
    {
     return person;
    }
 
    public void setPerson(Person person)
    {
     this.person = person;
    }
}
测试方法:

public class TestPerson
{
 public PersonDao getPersonDao()
 {
  ApplicationContext ac = new ClassPathXmlApplicationContext("spring_lushuifa.xml");
  return (PersonDao) ac.getBean("personDao");
 }
 
 @Test
 public void addPersonAndIdCard()
 {
  Person person = new Person();
  person.setPersonName("张三");
  person.getIdcard().setCardNo("3602222222222222");
  System.out.println("测试对象是否有用:"+person);
  this.getPersonDao().addPerson(person);
 }
}

分享到:
评论

相关推荐

    基于jpa的一对一的主键测试.docx

    基于 JPA 的一对一主键测试 本文档介绍了如何使用 Java 持久层 API(JPA)实现一对一的主键测试。该测试涵盖了人员表和身份证表之间的一对一关系,使用了 JPA 的注解来定义实体类和关系。 实体类设计 在该测试中...

    基于hibernate3.6的jpa例子

    此外,JPA提供了丰富的查询语言JQL(Java Persistence Query Language),可以像SQL一样对数据进行查询。例如: ```java String jql = "SELECT u FROM User u WHERE u.email = :email"; Query query = em....

    jpasql.rar

    **JPA(Java Persistence API)** 是Java平台上的一个标准,用于管理关系数据库中的数据,它...这两个文件共同构成了一个基于JPA的简单数据访问层,涵盖了从创建数据库连接,到执行SQL,再到测试这些操作的完整流程。

    java + spring boot +jpa 拦截器分库分表demo

    总的来说,这个Demo为我们提供了一个基于Java、Spring Boot和JPA的分库分表实现示例。它涵盖了从JPA的基本使用到AOP拦截器的实现,再到分库分表策略的设计,对于提升大型项目的数据库性能有着重要的参考价值。开发者...

    springBoot整合springData JPA

    它支持方法命名查询、注解查询以及基于JPA Criteria API的动态查询。 在描述中提到的"常用查询场景"包括了单表查询部分字段、联合查询映射自定义对象以及动态SQL。这些是数据库操作的常见需求: 1. **单表查询部分...

    08_JPA详解_分析JPA与持久化实现产品对接的源代码.zip

    JPA通过使用注解或XML来描述对象和数据库之间的映射关系,极大地简化了数据库访问,特别是对于那些基于Java的大型企业级应用程序。 **JPA的工作原理**: 1. **实体(Entity)**: 在JPA中,业务对象被称为实体,它们...

    spring+JPA示例

    4. **Repository接口**:Spring Data JPA 提供了基于接口的数据访问,我们可以通过继承JpaRepository接口,自定义方法来实现对数据库的CRUD操作,而无需编写具体的实现类。 5. **事务管理**:Spring 提供了声明式...

    spring data jpa

    Spring Data JPA是Spring框架的一个模块,专门用于简化Java持久层的开发,它提供了一种声明式的方式来处理数据库操作,如CRUD(创建、读取、更新和...在实际项目中,配合Spring Boot,可以快速构建基于JPA的Web应用。

    SpringMVC+JPA 注解开发 maven

    `@Entity`注解标识一个类为数据库中的表,`@Table`定义具体表名,`@Id`定义主键,`@GeneratedValue`处理主键生成策略。对于字段,`@Column`定义列属性,`@OneToMany`、`@ManyToOne`、`@OneToOne`和`@ManyToMany`处理...

    springboot-spring-data-jpa项目练习

    SpringBoot与Spring Data JPA是Java开发中常用的两个框架,它们极大地简化了Web应用和数据库交互的复杂性。...通过这个练习,开发者可以系统地掌握Spring Boot和Spring Data JPA的结合使用,提升对Java Web开发的理解。

    struts2+jpa+spring2.5配置基础框架

    首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它提供了强大的请求处理和页面展示功能。Struts2的核心优势在于它的拦截器机制,可以方便地实现AOP(面向切面编程),并提供了丰富的...

    基于springboot+jpa实现java后台api接口,点餐系统.zip

    实体之间的关系,如用户与订单的一对多关系,可以通过@OneToMany注解来定义。 5. **Spring Security** 考虑到点餐系统的安全性,可能会使用Spring Security来实现权限控制和认证。例如,对敏感API接口添加授权检查...

    struts2+spring2.5+jpa(基于注释)

    在这个项目中,使用了基于注解的JPA,如@Entity表示实体类,@Table定义实体对应的数据库表,@Id标记主键,@Column定义字段,@OneToMany和@ManyToOne描述一对多和多对一的关系等。通过这种方式,开发者可以快速地建立...

    java springboot data jpa 做的登录小程序 (未完成)

    Java SpringBoot Data JPA 是一个强大的框架组合,用于构建现代的、基于Java的企业级应用程序。SpringBoot简化了Spring框架的初始化和配置,使得开发者能够快速地启动和运行项目。Data JPA则是Spring的一个模块,...

    基于SpringBoot+Thymeleaf+JPA的博客系统.zip

    【标题】"基于SpringBoot+Thymeleaf+JPA的博客系统" 是一个使用现代Web开发技术构建的博客应用程序。这个项目的核心是SpringBoot框架,它简化了Java Web应用的开发过程,提供了自动配置、内嵌式Web服务器、丰富的...

    spring jpa

    6. **懒加载和级联操作**:通过 @OneToMany、@ManyToOne 和 @ManyToMany 注解配置一对多、多对一和多对多的关系,同时可以设置 FetchType.LAZY 来实现懒加载,避免大数据量时的性能问题。级联操作如 CascadeType.ALL...

    spring-data-jpa-example

    - Spring Data JPA 提供了一种声明式的方式,通过接口定义方法即可自动实现对数据库的操作,减少了大量重复的模板代码。 2. **项目结构解析** - "spring-data-jpa-example-master" 文件夹很可能是项目的主分支或...

    JPA与spring的集成

    Spring通过其`org.springframework.orm.jpa`包提供对JPA的支持,包括事务管理、实体管理工厂、数据源配置等。 集成步骤通常包括以下几点: 1. **添加依赖**:在项目的构建文件(如Maven或Gradle)中,需要引入...

    sping+data+jpa

    Spring Data JPA是Java开发中的一个关键框架,它简化了Spring应用中对Java Persistence API (JPA) 的使用。这个框架允许开发者以声明式的方式处理数据访问层的代码,极大地提高了开发效率。在这个名为"spring-data-...

    4_构建一个简单的spring-boot的data jpa项目.zip

    【标题】"4_构建一个简单的spring-boot的data jpa项目.zip" 提供了一个关于创建基于Spring Boot的Data JPA项目的基本步骤。Spring Boot简化了Java应用的开发,而Data JPA是Spring Data的一个模块,它提供了对ORM...

Global site tag (gtag.js) - Google Analytics