person 实体
package com.lyr.easymybatis.pojo.po;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
/**
* @Author lyr
* @create 2020/12/15 14:02
*/
@Entity
@Data
@Accessors(chain = true)
@DynamicInsert
@DynamicUpdate
@EntityListeners(AuditingEntityListener.class)
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long personId;
private String name;
// @Column(nullable = false)
// private Integer sex;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "t_person_role")
// @JoinTable(name = "person_role",
// inverseJoinColumns= {@JoinColumn(name = "person_id", referencedColumnName = "person_id")},
// joinColumns = {@JoinColumn(name = "role_id", referencedColumnName = "role_id")})
private List<Role> roles ;
}
role 实体
package com.lyr.easymybatis.pojo.po;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.util.List;
/**
* @Author lyr
* @create 2020/12/15 14:03
*/
@Entity
@Data
@Accessors(chain = true)
@DynamicInsert
@DynamicUpdate
@EntityListeners(AuditingEntityListener.class)
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long roleId;
/**
* 数据库唯一
*/
@Column(nullable = false, unique = true)
private String name;
}
测试代码:
@Resource
private RoleRepository roleRepository;
@Resource
private PersonRepository personRepository;
@Test
void printRoless() {
Role role = new Role().setName("老师");
Role role1 = new Role().setName("学生");
roleRepository.saveAll(Arrays.asList(role,role1));
}
@Test
@Transactional
@Rollback(false)
void insert11() {
Role r = new Role().setName("学生");
personRepository.save(new Person().setName("东哥1144").setRoles(Arrays.asList(r.setRoleId(4L) )));
// personRepository.findAll()
// .stream()
// .forEach(System.out::println);
}
@Test
void printPersonALL() {
personRepository
.findAll()
.forEach(l -> System.out.println(l));
}
@Test
void ll() {
roleRepository
.findAll()
.forEach(l -> System.out.println(l));
}
Hibernate:
select
person0_.person_id as person_i1_1_,
person0_.name as name2_1_
from
person person0_
Hibernate:
select
roles0_.person_person_id as person_p1_3_0_,
roles0_.roles_role_id as roles_ro2_3_0_,
role1_.role_id as role_id1_2_1_,
role1_.name as name2_2_1_
from
t_person_role roles0_
inner join
role role1_
on roles0_.roles_role_id=role1_.role_id
where
roles0_.person_person_id=?
Person(personId=6, name=东哥1144, roles=[Role(roleId=4, name=学生)])