我有一个user类与一个authority类相关,它们之间有一个manyToMany关系。
@Entity
@Table(name = "user")
public class User {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "user_seq")
@SequenceGenerator(name = "user_seq", sequenceName = "user_seq", allocationSize = 1)
private Long id;
@Column(name = "apiKey", updatable = false, nullable = false, unique=true, columnDefinition = "BINARY(16)")
private UUID apiKey;
@Column(name = "USERNAME", length = 50, unique = true)
@NotNull
@Size(min = 4, max = 50)
private String username;
@Column(name = "PASSWORD", length = 100)
@NotNull
@Size(min = 4, max = 100)
private String password;
@Column(name = "FIRSTNAME", length = 50)
@NotNull
@Size(min = 4, max = 50)
private String firstname;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
name = "USER_AUTHORITY",
joinColumns = {@JoinColumn(name = "USER_ID", referencedColumnName = "ID")},
inverseJoinColumns = {@JoinColumn(name = "AUTHORITY_ID", referencedColumnName = "ID")})
private List<Authority> authorities;
}
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
User findByUsername(String username);
List<UserWithUuid> findAllByNodeId(Long nodeId);
interface UserWithUuid {
String getFirstname();
String getLastname();
String getEmail();
List<Authority> getAuthorities();
UUID getApiKey();
}
}
正如您在输出中看到的,它返回两次相同的用户,但具有不同的角色。
输出
[
{
"firstname": "daniel",
"lastname": "mancera",
"email": "daniel.mancera@dmance.eu",
"apiKey": "7961609f-79d4-4ef2-9baa-6809978c038b",
"authorities": [
{
"id": 1,
"name": "ROLE_USER"
}
]
},
{
"firstname": "daniel",
"lastname": "mancera",
"email": "daniel.mancera@dmance.eu",
"apiKey": "7961609f-79d4-4ef2-9baa-6809978c038b",
"authorities": [
{
"id": 2,
"name": "ROLE_MANAGER"
}
]
},
{
"firstname": "Roger",
"lastname": "Rabbit",
"email": "roger.rabiit@rab.it",
"apiKey": "023bf60b-e79b-461f-bd30-65a920fe99e4",
"authorities": [
{
"id": 1,
"name": "ROLE_USER"
}
]
}
]
这很可能是这个Bug https://jira.spring.io/browse/datajpa-1173
Spring Data的当前版本已经修复了这个问题,所以升级您使用的版本应该可以修复这个问题。
问题内容: 我正在尝试使用复合主键在学生和教学课程之间建立许多联系: 我的课程: 教学班: 集合对象: 现在,主键: 当我尝试对学生进行坚持时,出现以下错误: 我究竟做错了什么? 问题答案: 我解决了这个问题。我映射了Getter而不是field。
如果我有用@component注释标记的bean。而是不同文件夹中的两个bean。一个在com.mycompany.core.bean1中,另一个在com.mycompany.dao.bean2中。当我试图在Bean2中自动连接bean1时,就像: 我需要在bean2中导入带有bean1的包吗?还是它会自己扫描它? UPD:我知道同名的问题。但问题是完全不同的。所以请注意我的问题,如果你现在它,不
问题内容: 我刚刚开始学习Swift。 题: 当我在地图上触摸以放置图钉注释并拖动手指时,它将创建 重复的注释行。 问题答案: Xcode 8.2•Swift 3.0.2 您只需要检查手势识别器的状态,并确定是否可以 。返回。只需在操作方法顶部添加if条件: 如果要允许用户在触摸时移动图钉,则 需要更改手势识别器的状态并在 gestureRecognizer.state更改时更新注释坐标:
我正在尝试链接mysql表(role、user、user_role)。 UserModel实体包含字段“roles”。 当我保存用户时,表'roles'中会自动创建新行。如何取消重复角色?
我使用的默认贴图如下: 我可以从另一个GeoDataFrame(这里称为sample_gdf)成功地将标签注释到此地图,下面是循环示例: 这就是epsg=4326时的样子当我想改变地图的投影时,问题就开始了。上面变量world的默认CRS是epsg: 4326。一旦我像这样改变投影: 专注于欧洲,我的标签不再出现在正确的位置。一周来,我一直在寻找解决这个问题的建议,但目前找不到任何解决方案。谢谢你
MongoDB 中的投影即查询指定的字段,而不是直接查询文档的全部字段。比如说某个文档中有 5 个字段,而我们只需要其中的 3 个字段,那么就可以使用 MongoDB 中的投影来指定需要查询的 3 个字段。 在《 MongoDB查询文档》一节中我们介绍的 find() 方法,在使用 find() 方法时,如果不设置其中的第二个参数,那么在查询时将返回文档中的所有字段,想要限制要查询的字段,您就需要