九.Spring 实体管理器
来源:互联网 发布:la域名在里注册便宜 编辑:程序博客网 时间:2024/06/07 06:55
一.
实体管理器:实体与数据库间桥梁,可把实体持久化到数据库,也可把数据库记录打包为实体。
基础映射:
dao层类 UserRepositoryImpl,spring配置文件通过其后缀知道它与接口UserRepository关系。在UserRepositoryImpl中注入一个
@PersistenceContext private EntityManager entityManager;
@Transactional public void add(User user) { entityManager.persist(user); }
add:entityManager.persist(user);
update:find(User.class, user.getId()),修改实体属性,返回实体
addOrUpdate:.merge(user)
delete:remove
高级映射:
一对一:Person对address,Person的address_id(外键)对应address的aid(主键)
@OneToOne(cascade={CascadeType.REFRESH,CascadeType.REMOVE},fetch=FetchType.LAZY)
一对多:
depart:did ,name
depart_employee:depart_id ,employ_id
employee:eid, name
@OneToMany @JoinTable(name = "depart_employee", joinColumns = @JoinColumn(name = "depart_id",referencedColumnName="did"), inverseJoinColumns = @JoinColumn(name = "employee_id",referencedColumnName="eid")) private List<Employee> employees;
另一种方法:
在多端加一列:depart_id
配置:
class Depart2:@OneToMany @JoinColumn(name="depart_id",referencedColumnName="id") private List<Employee2> employee2s;
多对多:
student:sid,age,gender,height,name
teacher_student:teacher_id,student_id
teacher:tid,age,gender,height,name
class Teacher : @ManyToMany @JoinTable(name = "teacher_student", joinColumns = @JoinColumn(name = "teacher_id",referencedColumnName="tid"), inverseJoinColumns = @JoinColumn(name = "student_id",referencedColumnName="sid")) private List<Student> students;
class Student:@ManyToMany(mappedBy = "students") private List<Teacher> teachers;
实体映射:单一表策略,连接表策略,每个类策略
类策略不浪费空间,效率高:
book,phone都继承了父类item,子类父类的主键不重复
@Entity@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public class Item {/* @Id @GeneratedValue(strategy = GenerationType.AUTO) */ @Id @GeneratedValue(strategy = GenerationType.TABLE, generator = "ItemGenerator") @TableGenerator(name = "ItemGenerator",table="pk_generator", pkColumnName="gen_name", valueColumnName="gen_value", pkColumnValue="item_pk", initialValue=0, allocationSize=1) private Long id;
0 0
- 九.Spring 实体管理器
- jpa实体管理器
- JPA实体管理器
- Ejb之实体管理器
- JPA实体管理器
- JPA实体管理器
- JPA实体管理器
- 【JPA】EntitryManager实体管理器(一)
- EJB3 持久化实体管理器EntityManager
- EJB---->持久化实体管理器EntityManager
- JPA 实体管理器工厂(EntityManagerFactory)
- Spring事务管理器
- Spring事务管理器分类
- Spring事务管理器分类
- spring事物管理器解析
- Spring事务管理器
- spring事务管理器
- Spring的事务管理器
- sphinx初探
- resource配置文件不能扫描到
- codeforces Gym 101097 I Sticks
- Hdu 1507 Uncle Tom's Inherited Land*【二分匹配】
- java 方法中 参数的复制
- 九.Spring 实体管理器
- JavaScript学习笔记22-事件处理
- Oracle之escape关键字(转义字符)
- bugzilla
- 虫食算
- Oracle 中循环遍历某张表,并对符合条件的进行Update操作
- Oracle入门____创建表空间,创建用户,赋权
- vagrant box 相关调查记录
- sdut 2153 Clockwise