==========User.java=========
package com.me.model;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(name = "T_USER", schema = "SSHE")
public class User implements java.io.Serializable {
// Fields
private String id;
private String name;
private String pwd;
private Date createdatetime;
private Date modifydatetime;
private Set<Address> addresses = new HashSet<Address>();
private Set<Role> roles = new HashSet<Role>();
// Constructors
/** default constructor */
public User() {
}
/** minimal constructor */
public User(String id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
/** full constructor */
public User(String id, String name, String pwd, Date createdatetime,
Date modifydatetime) {
this.id = id;
this.name = name;
this.pwd = pwd;
this.createdatetime = createdatetime;
this.modifydatetime = modifydatetime;
}
// Property accessors
@Id
@Column(name = "ID", unique = true, nullable = false, length = 36)
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
@Column(name = "NAME", nullable = false, length = 100)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "PWD", nullable = false, length = 32)
public String getPwd() {
return this.pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CREATEDATETIME", length = 7)
public Date getCreatedatetime() {
return this.createdatetime;
}
public void setCreatedatetime(Date createdatetime) {
this.createdatetime = createdatetime;
}
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "MODIFYDATETIME", length = 7)
public Date getModifydatetime() {
return this.modifydatetime;
}
public void setModifydatetime(Date modifydatetime) {
this.modifydatetime = modifydatetime;
}
@OneToMany(cascade = CascadeType.ALL, mappedBy = "contactName", fetch = FetchType.EAGER)
public Set<Address> getAddresses() {
return addresses;
}
public void setAddresses(Set<Address> addresses) {
this.addresses = addresses;
}
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "USER_ROLE", joinColumns = { @JoinColumn(name = "USER_ID",referencedColumnName = "id")}, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })
public Set<Role> getRoles() {
return roles;
}
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
}
=====================Role.java
package com.me.model;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
@Entity
@Table(name = "T_ROLE", schema = "SSHE")
public class Role implements java.io.Serializable {
private int id;
private String role;
private Set<User> users;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
// @ManyToMany(fetch = FetchType.LAZY, mappedBy = "students")
@ManyToMany(fetch = FetchType.LAZY,mappedBy = "roles")
public Set<User> getUsers() {
return users;
}
public void setUsers(Set<User> users) {
this.users = users;
}
}
====================Address.java================
package com.me.model;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "T_ADDRESS", schema = "SSHE")
public class Address implements java.io.Serializable {
private User contactName;
private String postCode;
private String detail;
private String phone;
private Integer id;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@ManyToOne(cascade = { CascadeType.ALL })
@JoinColumn(name = "USER_ID")
public User getContactName() {
return contactName;
}
public void setContactName(User contactName) {
this.contactName = contactName;
}
@Column(name = "CODE", length = 50)
public String getPostCode() {
return postCode;
}
public void setPostCode(String postCode) {
this.postCode = postCode;
}
@Column(name = "DETAIL", length = 200)
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
@Column(name = "PHONE_NUM", length = 200)
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
===================UserServiceImpl.java=============
package me.gacl.service.impl;
import java.io.Serializable;
import java.util.List;
import me.gacl.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.me.dao.UserDao;
import com.me.model.User;
//使用Spring提供的@Service注解将UserServiceImpl标注为一个Service
@Service("userService")
public class UserServiceImpl implements UserService {
/**
* 注入userDao
*/
@Autowired
private UserDao userDao;
public void test() {
System.out.println("Hello World!");
}
public Serializable save(User user) {
return userDao.save(user);
}
public List<User> getUsers() {
return userDao.getUsers();
}
}
===================UserDaoImpl.java==================
package com.me.dao.impl;
import java.io.Serializable;
import java.util.List;
import javax.annotation.Resource;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;
import com.me.dao.UserDao;
import com.me.model.User;
@Repository("userDao")
public class UserDaoImpl implements UserDao {
/**
* 使用@Autowired注解将sessionFactory注入到UserDaoImpl中
*/
@Resource
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Serializable save(User user) {
return sessionFactory.getCurrentSession().save(user);
}
public List<User> getUsers() {
Session session= sessionFactory.openSession();
return session.createQuery("from User").list();
}
}
=================TestHiberante.java==================
package com.me.test;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import me.gacl.service.UserService;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.me.model.Address;
import com.me.model.Role;
import com.me.model.User;
public class TestHibernate {
private UserService userService;
/**
* 这个before方法在所有的测试方法之前执行,并且只执行一次
* 所有做Junit单元测试时一些初始化工作可以在这个方法里面进行
* 比如在before方法里面初始化ApplicationContext和userService
*/
@Before
public void before(){
ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"spring.xml","spring-hibernate.xml"});
userService = (UserService) ac.getBean("userService");
}
@Test
public void testSaveMethod(){
//ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"spring.xml","spring-hibernate.xml"});
//UserServiceI userService = (UserServiceI) ac.getBean("userService");
User user = new User();
user.setId(UUID.randomUUID().toString().replaceAll("-", ""));
user.setName("gacl");
user.setPwd("123");
user.setCreatedatetime(new Date());
userService.save(user);
}
@Test
public void testFindMethod(){
//ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"spring.xml","spring-hibernate.xml"});
//UserServiceI userService = (UserServiceI) ac.getBean("userService");
List<User> list=userService.getUsers();
System.out.println(list.size());
}
@Test
public void testOtMSaveMethod(){
//ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"spring.xml","spring-hibernate.xml"});
//UserServiceI userService = (UserServiceI) ac.getBean("userService");
User user = new User();
user.setId(UUID.randomUUID().toString().replaceAll("-", ""));
user.setName("gacl");
user.setPwd("123");
user.setCreatedatetime(new Date());
Address a=new Address();
a.setContactName(user);
a.setDetail("Sz xxx");
a.setPhone("18956264598");
a.setPostCode("898989");
Address ab=new Address();
ab.setContactName(user);
ab.setDetail("Sz xxx12");
ab.setPhone("18956264598");
ab.setPostCode("888989");
user.getAddresses().add(ab);
user.getAddresses().add(a);
userService.save(user);
}
@Test
public void testGetsMethod(){
//ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"spring.xml","spring-hibernate.xml"});
//UserServiceI userService = (UserServiceI) ac.getBean("userService");
List<User> list=userService.getUsers();
for (User user : list) {
System.out.println(user.getName());
Set<Address> set=user.getAddresses();
for (Address address : set) {
System.out.println(address.getPhone());
}
}
}
@Test
public void testMTM(){
User user = new User();
user.setId(UUID.randomUUID().toString().replaceAll("-", ""));
user.setName("comMe");
user.setPwd("123");
user.setCreatedatetime(new Date());
Role r=new Role();
r.setRole("Adminstrator");
Role r1=new Role();
r1.setRole("Hr");
user.getRoles().add(r1);
user.getRoles().add(r);
userService.save(user);
}
}
分享到:
相关推荐
JPA课程manyToMany OneToMany 等全部测试 注解, 有注释
hibernate对象三状态及OneToOne&OneToMany&ManyToMany讲解,代码示例,数据库示例!非常全面
o @ManyToMany o @ManyToOne o @MapKey o @MappedSuperclass • N o @NamedNativeQueries o @NamedNativeQuery o @NamedQueries o @NamedQuery • O o @OneToMany o @OneToOne o @OrderBy • P o @...
双向 @OneToMany(mappeBy="") 关系交给对方维护 3多对多 @ManyToMany-->代表多对多 @ManyToMany(mappeBy="")mappeBy-->通过此属性把关系交给对方维 注意:一般出现多对多的情况时,我们会把多对多分解成2个一对...
详解Hibernate cascade级联属性的CascadeType的用法 cascade(级联) ...cascade表示级联操作,在hibernate配置注解@OneToOne,@OneToMany,@ManyToMany,@ManyToOne中的属性。 例如: @ManyToOne(c
在EJB3规范中多对一这端几乎总是双向关联中的主体(owner)端,而一对多这端关联批注为@OneToMany(mappedBy...) @Entity Public class Troop{ @OneToMany(mappedBy=”troop”) Public Set<Soldier> getSoldiers(){ .....
@OneToMany(mappedBy 相当于 inverse ) @ManyToOne 结合 @JoinColumn 添加一列外键 @ManyToMany 一方写 mappedBy 放弃外键维护、另一方 @JoinTable 维护中间表 收派标准修添加能实现 html 请求 后台...
AUTO 生成器,适用与可移值的应用,多个@Id可以共享同一个 identifier生成器,只要把generator属性设成相同的值就可以。通过@SequenceGenerator 和 @TableGenerator 可以配置不同的 identifier 生成器。 table=...
onetomany onetoone manytoone manytomany xml的
关于Laravel Laravel是一个具有表达力,优雅语法的Web应用程序框架。 我们认为,发展必须是一种令人愉悦的创造力,才能真正实现。 Laravel通过减轻许多Web项目中使用的常见任务来减轻开发工作的痛苦,例如: ...
迁移,typeorm,实体和postgres数据库,带有tsyringe的自动依赖项注入,OneToMany更改,ManyToMany,ManyToOne,错误处理和单元测试。 在此挑战中,在NodeJs中创建了一个带有Typescript的应用程序,该应用程序应...
数据库培训,教师的课堂操作记录,附带联系及答案。 10个课时,快速掌握sql 当时老师讲的比较不错,很通俗。...附:最后讲了下对象关系映射,一个对象映射数据库中的数据: ManyToMany OneToMany OnToOne
@ManyToMany // w/o this annotation will be OneToMany by convention LazyCollection!User users; } // create metadata from annotations EntityMetaData schema = new SchemaInfoImpl!...
它旨在演示页面之间的关系(ManyToMany和OneToMany关系) 全局StreamField 片段的使用指环王》的怪胎包含什么Cookiecutter项目包括鹡鸰使用箱底座的流浪汉配置Heroku配置(包括示例.env文件) 示例应用程序: home ...
实体将City,Tag,Comment,Country和Year类设置为具有OneToMany,ManyToOne和ManyToMany关系的实体。 储存库实例五个存储库接口扩展了CRUD存储库。 CityRepository还包含findByCountry,findByCountryId,...
ef core 一对多,多对多关联关系的配置,使用ef core的迁移命令生成表和数据库
ManyToMany等关系。 让您非常快速地编写数据库使用者程序。 奥尔曼是... 开源(根据 Apache License 2.0 许可) 轻量级和小 (~170 kb)(替代品如 Hibernate ~4 mb) 易于安装 易于使用注释进行配置,不需要 XML 配置...
医院预约系统End-End Java Spring Boot应用程序和重新检查... 这个微型项目的概念介绍:1.Hibernate继承2.Spring数据JPA关联1.ManyToMany 2.OneToMany 3.ManyToOne 3.组件继承4.Java 8新概念1.Funtional接口2.Streams
伊利亚米亚·维奥雷尔(Ieremias Viorel)和瓦拉迪·罗伯特 ... OneToMany:项目->注释,ManyToMany:用户->收藏夹->项目,用户->投票->项目; SpringBoot + JPA + Thymeleaf + JavaScript / jQuery; Gradle。
javax.persistence.ManyToMany.class javax.persistence.ManyToOne.class javax.persistence.MapKey.class javax.persistence.MapKeyClass.class javax.persistence.MapKeyColumn.class javax.persistence....