springboot-jpa的使用
-
创建entity包,代码如下:
import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity @Table(name = "role_info") public class RoleEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long roleId; // 生成之后的role_name表中的列名,唯一,不为空,varchar(50) @Column(name = "role_name", unique = true, nullable = false, length = 50) private String roleName; private Integer deleteFlag; @Setter @Getter @ManyToMany // 多对多关系 @JoinTable( // 中间表的表名. name = "role_module", // 对应中间表的一个列名,和当前表的主键roleId关联的. joinColumns = @JoinColumn(name = "temp_role_id"), // 中间表的另一个列名,和另一张表的主键相关联. inverseJoinColumns = @JoinColumn(name = "temp_module_id") ) private List<ModuleEntity> moduleEntityList = new ArrayList<>(); public Integer getDeleteFlag() { return deleteFlag; } public void setDeleteFlag(Integer deleteFlag) { this.deleteFlag = deleteFlag; } public Long getRoleId() { return roleId; } public void setRoleId(Long roleId) { this.roleId = roleId; } public String getRoleName() { return roleName; } public void setRoleName(String roleName) { this.roleName = roleName; }
}
关联表的实体类
import com.fasterxml.jackson.annotation.JsonBackReference;
import lombok.*;
import javax.persistence.*;
import java.util.List;
@Entity
@Table(name = "module_info")
// data 包含set/get/toString/equals
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ModuleEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long moduleId;
@Column(name = "module_name", unique = true, nullable = false, length = 50)
private String moduleName;
}
-
创建repository包,代码如下:
import com.lanou3g.springjpademo.entity.RoleEntity; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import java.util.List; public interface RoleRepository extends JpaRepository<RoleEntity, Long> { // 自定义查询(没有使用) @Query(value = "select * from role_info", nativeQuery = true) List<RoleEntity> roles(); }
-
创建controller层,代码如下:
import com.lanou3g.springjpademo.entity.RoleEntity; import com.lanou3g.springjpademo.repository.RoleRepository; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; @RestController public class RoleInfroController { @Resource private RoleRepository roleRepository; @RequestMapping("/list") public List<RoleEntity> list() { return roleRepository.findAll(); }
}