SpringBoot JPA 在实体中设置多个主键的方法

  1. 写一个包含主键类并实例化

  2. 在实体类中通过 @IdClass 添加主键类

  3. 实体类中使用 @Id 加在需要设置成主键的字段上

主键类

@Data
public class UserPrimaryKey implements Serializable {
    private Integer id;
    private Integer userId;
}

实体类

@Data
@Entity
@Table(name = "sys_user")
@IdClass(UserPrimaryKey.class)
@EqualsAndHashCode(callSuper = true)
@DynamicUpdate
public class SysUserEntity{
    /**
     * @description 主键
     */
    @Id
    @Column(name = "id", nullable = false)
    private Integer id;
    /**
     * @description 主键
     */
    @Id
    @Column(name = "user_id", nullable = false)
    private Integer userId;
 
}

如果你不想单独写一个主键类,那你可以这样写

@Data
@Entity
@Table(name = "sys_user")
@IdClass(SysUserEntity.UserPrimaryKey.class)
@EqualsAndHashCode(callSuper = true)
@DynamicUpdate
public class SysUserEntity{
    @Data
    static class UserPrimaryKey implements Serializable {
        private Integer id;
        private Integer userId;
    }
    /**
     * @description 主键
     */
    @Id
    @Column(name = "id", nullable = false)
    private Integer id;
    /**
     * @description 主键
     */
    @Id
    @Column(name = "user_id", nullable = false)
    private Integer userId;
 
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个开源的Java框架,它简化了基于Java的应用程序的开发过程。JPA(Java Persistence API)是Java持久化规范的一部分,它提供了一种方便的方式来进行对象关系映射(ORM)。 在Spring Boot使用JPA可以更加方便地操作数据库。首先,你需要在项目的依赖添加spring-boot-starter-data-jpa包。然后,在你的实体使用注解来定义数据模型和数据库表之间的映射关系。接着,你可以编写Repository接口来定义数据库操作方法,Spring Boot会自动为你生成实现。 下面是一个简单的示例: 首先,在pom.xml文件添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> ``` 然后,在你的实体使用注解来定义数据模型和数据库表之间的映射关系。例如: ```java @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private String password; // 省略getter和setter } ``` 接着,你可以编写Repository接口来定义数据库操作方法。例如: ```java public interface UserRepository extends JpaRepository<User, Long> { User findByUsername(String username); } ``` 在上面的例子,我们定义了一个UserRepository接口,继承自JpaRepository,并指定了实体类类型和主键类型。然后,我们可以在该接口定义一些自定义的查询方法。 最后,在你的业务逻辑,你可以注入UserRepository,并调用其方法来进行数据库操作。例如: ```java @Service public class UserService { @Autowired private UserRepository userRepository; public User getUserByUsername(String username) { return userRepository.findByUsername(username); } // 其他业务逻辑方法 } ``` 上面的例子演示了如何使用Spring Boot和JPA进行简单的数据库操作,希望能对你有所帮助!如果你有更多的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值