人员表:一个人只能对应一个身份证
@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 的一对一主键测试 本文档介绍了如何使用 Java 持久层 API(JPA)实现一对一的主键测试。该测试涵盖了人员表和身份证表之间的一对一关系,使用了 JPA 的注解来定义实体类和关系。 实体类设计 在该测试中...
此外,JPA提供了丰富的查询语言JQL(Java Persistence Query Language),可以像SQL一样对数据进行查询。例如: ```java String jql = "SELECT u FROM User u WHERE u.email = :email"; Query query = em....
**JPA(Java Persistence API)** 是Java平台上的一个标准,用于管理关系数据库中的数据,它...这两个文件共同构成了一个基于JPA的简单数据访问层,涵盖了从创建数据库连接,到执行SQL,再到测试这些操作的完整流程。
总的来说,这个Demo为我们提供了一个基于Java、Spring Boot和JPA的分库分表实现示例。它涵盖了从JPA的基本使用到AOP拦截器的实现,再到分库分表策略的设计,对于提升大型项目的数据库性能有着重要的参考价值。开发者...
它支持方法命名查询、注解查询以及基于JPA Criteria API的动态查询。 在描述中提到的"常用查询场景"包括了单表查询部分字段、联合查询映射自定义对象以及动态SQL。这些是数据库操作的常见需求: 1. **单表查询部分...
JPA通过使用注解或XML来描述对象和数据库之间的映射关系,极大地简化了数据库访问,特别是对于那些基于Java的大型企业级应用程序。 **JPA的工作原理**: 1. **实体(Entity)**: 在JPA中,业务对象被称为实体,它们...
4. **Repository接口**:Spring Data JPA 提供了基于接口的数据访问,我们可以通过继承JpaRepository接口,自定义方法来实现对数据库的CRUD操作,而无需编写具体的实现类。 5. **事务管理**:Spring 提供了声明式...
Spring Data JPA是Spring框架的一个模块,专门用于简化Java持久层的开发,它提供了一种声明式的方式来处理数据库操作,如CRUD(创建、读取、更新和...在实际项目中,配合Spring Boot,可以快速构建基于JPA的Web应用。
`@Entity`注解标识一个类为数据库中的表,`@Table`定义具体表名,`@Id`定义主键,`@GeneratedValue`处理主键生成策略。对于字段,`@Column`定义列属性,`@OneToMany`、`@ManyToOne`、`@OneToOne`和`@ManyToMany`处理...
SpringBoot与Spring Data JPA是Java开发中常用的两个框架,它们极大地简化了Web应用和数据库交互的复杂性。...通过这个练习,开发者可以系统地掌握Spring Boot和Spring Data JPA的结合使用,提升对Java Web开发的理解。
首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它提供了强大的请求处理和页面展示功能。Struts2的核心优势在于它的拦截器机制,可以方便地实现AOP(面向切面编程),并提供了丰富的...
实体之间的关系,如用户与订单的一对多关系,可以通过@OneToMany注解来定义。 5. **Spring Security** 考虑到点餐系统的安全性,可能会使用Spring Security来实现权限控制和认证。例如,对敏感API接口添加授权检查...
在这个项目中,使用了基于注解的JPA,如@Entity表示实体类,@Table定义实体对应的数据库表,@Id标记主键,@Column定义字段,@OneToMany和@ManyToOne描述一对多和多对一的关系等。通过这种方式,开发者可以快速地建立...
Java SpringBoot Data JPA 是一个强大的框架组合,用于构建现代的、基于Java的企业级应用程序。SpringBoot简化了Spring框架的初始化和配置,使得开发者能够快速地启动和运行项目。Data JPA则是Spring的一个模块,...
【标题】"基于SpringBoot+Thymeleaf+JPA的博客系统" 是一个使用现代Web开发技术构建的博客应用程序。这个项目的核心是SpringBoot框架,它简化了Java Web应用的开发过程,提供了自动配置、内嵌式Web服务器、丰富的...
6. **懒加载和级联操作**:通过 @OneToMany、@ManyToOne 和 @ManyToMany 注解配置一对多、多对一和多对多的关系,同时可以设置 FetchType.LAZY 来实现懒加载,避免大数据量时的性能问题。级联操作如 CascadeType.ALL...
- Spring Data JPA 提供了一种声明式的方式,通过接口定义方法即可自动实现对数据库的操作,减少了大量重复的模板代码。 2. **项目结构解析** - "spring-data-jpa-example-master" 文件夹很可能是项目的主分支或...
Spring通过其`org.springframework.orm.jpa`包提供对JPA的支持,包括事务管理、实体管理工厂、数据源配置等。 集成步骤通常包括以下几点: 1. **添加依赖**:在项目的构建文件(如Maven或Gradle)中,需要引入...
Spring Data JPA是Java开发中的一个关键框架,它简化了Spring应用中对Java Persistence API (JPA) 的使用。这个框架允许开发者以声明式的方式处理数据访问层的代码,极大地提高了开发效率。在这个名为"spring-data-...
【标题】"4_构建一个简单的spring-boot的data jpa项目.zip" 提供了一个关于创建基于Spring Boot的Data JPA项目的基本步骤。Spring Boot简化了Java应用的开发,而Data JPA是Spring Data的一个模块,它提供了对ORM...