我遇到了一个问题,@ManyToMore集合没有在数据加载时填充。我尝试了FetchType.LAZY和FetchType.EAGER,结果没有变化。
打印用户对象时,角色集合对象为空。
用户 [userId=2,名字=阿贾伊,姓氏=C,email=admin.demo@gmail.com,密码=12345,角色=[]]
也尝试通过添加引用的列。但不起作用。
请在这方面协助。
用户和角色实体如下。
@Entity
@Table(name = "\"USER\"", schema = "\"PLATFORM_PROD_IOT\"", uniqueConstraints = {
@UniqueConstraint(columnNames = { "\"EMAIL_ID\"" }) })
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Size(min = 1, max = 50)
@Column(name = "\"USER_ID\"")
private Long userId;
@NotBlank
@Size(min = 3, max = 50)
@Column(name = "\"FIRST_NAME\"")
private String firstName;
@NotBlank
@Size(min = 3, max = 50)
@Column(name = "\"LAST_NAME\"")
private String lastName;
@NaturalId
@NotBlank
@Size(max = 50)
@Email
@Column(name = "\"EMAIL_ID\"")
private String email;
@NotBlank
@Size(min = 3, max = 100)
@Column(name = "\"PASSWORD\"")
private String password;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "\"USER_ROLE_MAPPING\"", schema = "\"\PLATFORM_PROD_IOT\"", joinColumns = @JoinColumn(name = "\"USER_ID\""), inverseJoinColumns = @JoinColumn(name = "\"ROLE_ID\""))
private Set<Role> roles = new HashSet<>();
//Getters and Setters
}
@Entity
@Table(name = "\"ROLE\"",schema="\"PLATFORM_PROD_IOT\"")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="\"ROLE_ID\"")
private Long roleId;
@Column(name="\"ROLE_NAME\"")
private RoleName name;
//Getters and Setters
}
你可以试试这个 -
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "\"USER_ROLE_MAPPING\"", catalog = "\"PLATFORM_PROD_IOT\"", joinColumns = {
@JoinColumn(name = "\"USER_ID\"", nullable = false, updatable = false) },
inverseJoinColumns = { @JoinColumn(name = "\"ROLE_ID\"",
nullable = false, updatable = false) })
private Set<Role> roles = new HashSet<>();
public Set<Role> getRoles() {
return roles;
}
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
在这里我添加了
还发现了一个相关的集合,没有在多对多关系中填充。
这可能不是最好的问题,但我注意到有2个Spring JPA用于Spring Boot。他们有什么不同。目前,我正在尝试将SpringBoot1.5.3项目与Hibernate一起设置。我记得我之前用spring-boot-starter-data-jpa用JPA设置了Springboot。 我看到的大多数在线示例以及starter.spring.io都为spring JPA提供了以下依赖项。 但是
问题内容: 我有实体和 我可以按用户实体获得所有测试: 但是我可以使用哪个查询查找所有测试? 问题答案: 以下方法签名将使你想要: 这是使用Spring Data JPA 的属性表达式功能。签名将转换为。请注意,这将对给定的用户名执行完全匹配。
null 我想知道这三者之间的区别。尝试搜索在线文档,其中说这三个几乎与spring数据有关。如何化解困惑? 在这里,我还发现了另一个依赖项spring-boot-starter-web-services。我认为它同时支持SOAP和REST。这只是我的假设,我在等待一个解释
我试图存储一个manytomany关系,但它没有存储关系。 下面的代码生成了3个表。 这是我发送到服务器的JSON: {“abbreviatedsequence”:“xdf”,“medals”:[{“name”:“purple”,“id”:1},{“name”:“red”,“id”:2}],“sequence”:“xdfree”,“name”:“savier”} java
本文向大家介绍Spring Boot整合Spring Data Jpa代码实例,包括了Spring Boot整合Spring Data Jpa代码实例的使用技巧和注意事项,需要的朋友参考一下 一、Spring Data Jpa的简介 spring data:其实就是spring 提供的一个操作数据的框架。而spring data JPA 只是spring data 框架下的一个基于JPA标准操作数