当前位置: 首页 > news >正文

做任务赚钱的网站四川省人民政府

做任务赚钱的网站,四川省人民政府,网站怎么做可以增加点击率,网站在线制作系统​ 在实际工作中,我们会经常遇到联合主键的情况,所以我用简单例子列举JPA两种实现联合主键的方式。 1、如何通过IdClass 实现联合主键 第一步:新建一个UserInfoID类,里面是联合主键 Data Builder NoArgsConstructor AllArgsConstructor pu…

​ 在实际工作中,我们会经常遇到联合主键的情况,所以我用简单例子列举JPA两种实现联合主键的方式。

1、如何通过@IdClass 实现联合主键

第一步:新建一个UserInfoID类,里面是联合主键

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfoID implements Serializable {private String name, telephone;
}

第二步:新建一个UserInfo实体,采用@IdClass引用联合主键

@Entity
@Data
@Builder
@IdClass(UserInfoID.class)
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo {private Integer ages;@Idprivate String name;@Idprivate String telephone;
}

第三步:新建一个UserInfoRepsitory类完成CRUD

@Repository
public interface UserInfoRepository  extends JpaRepository< UserInfo,UserInfoID> {
}

第四步:写一个测试

@SpringBootTest
class SpringDataJpaTestApplicationTests {@Resourceprivate UserInfoRepository userInfoRepository;@Testpublic void testIdClass() {userInfoRepository.save(UserInfo.builder().ages(29).name("sunfeng").telephone("18854885488").build());Optional<UserInfo> userInfoOptional = userInfoRepository.findById(UserInfoID.builder().name("sunfeng").telephone("18854885488").build());userInfoOptional.ifPresent(System.out::println);}}

通过上面的例子可以发现表的主键是primary key(name, telephone),而Entity里面不是一个@Id字段了

2、@Embeddable与@EmbedDedId注解使用

第一步:我们在上面的例子中的UserInfoID里面添加@Embeddable注解

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Embeddable
public class UserInfoID implements Serializable {private String name, telephone;
}

第二步:修改一下我们刚才的UserInfo对象,删除@IdClass添加 @EmbeddedId注解

@Entity
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo {private Integer ages;@EmbeddedIdprivate UserInfoID userInfoID;}

第三部:其他不变我们修改一下测试用例

@SpringBootTest
class SpringDataJpaTestApplicationTests {@Resourceprivate UserInfoRepository userInfoRepository;@Testpublic void testIdClass() {userInfoRepository.save(UserInfo.builder().ages(29).userInfoID(UserInfoID.builder().name("sunfeng").telephone("18854885488").build()).build());Optional<UserInfo> userInfoOptional = userInfoRepository.findById(UserInfoID.builder().name("sunfeng").telephone("18854885488").build());userInfoOptional.ifPresent(System.out::println);}

运行完之后,可以得到相同的结果。那么两种方式之间的区别是什么?

  1. 在使用的时候 @EmbeddedId使用的是对象,而IdClass用的是具体的字段
  2. 二者的JPQL也会不一样
    1. @IdClass的JPQL写法是:SELECT u.name FROM UserIndo u
    2. @EmbeddedId的JPQL写法是:select u.userInfo.name FROM UserInfo u
http://www.fp688.cn/news/159589.html

相关文章:

  • 调查网站赚钱优化大师是什么意思
  • 某班级网站建设方案论文seo独立站
  • php源码下载网站网络营销推广的手段
  • 网站文字不能复制怎么做网优工程师前景和待遇
  • 网站开发经验教训科学新概念seo外链平台
  • 青海手机网站建设互动营销用在哪些推广上面
  • 西安专业网站建设公司中国职业培训在线官方网站
  • 自适应网页如何设计seo的主要内容
  • 龙华网站开发公司无锡网站建设公司
  • 青岛市城乡建设委员会网站电话轻松seo优化排名
  • 如何管理建好的网站网络营销方法有几种类型
  • 旅游网站前端模板做公司网站
  • 自我介绍网站html外贸网站建设推广
  • 商业网站开发设计报告软文推荐
  • 手机销售网站怎么做seo搜索引擎入门教程
  • 合肥网站制作公司淘宝店铺怎么推广
  • 电子商务网站建设设计报告智能建站模板
  • wordpress对网站排名网络营销的含义的理解
  • 网站建设市场行情5118站长工具箱
  • 石家庄热点头条新闻杭州云优化信息技术有限公司
  • 如何修改wordpress的字体上海网站优化
  • 宁波网站建设报价seo按天计费系统
  • 黑龙江省建设厅官网查询淘宝优化标题都是用什么软件
  • 企业网站建站 广州 视频注册推广
  • 北京微信网站建设电话咨询电商培训班一般多少钱
  • 如何查询网站被百度收录免费建站网站一级
  • 郑州中色十二冶金建设有限公司网站河南网站建设公司哪家好
  • 建个公司网站要多少钱最新疫情新闻100字
  • 大数据对网站建设教育的影响外贸出口平台网站
  • 怎么下载网站所有源码草根站长工具