小编M.D*_*etz的帖子

Keycloak API,通过 ids 列表获取用户的最佳方式

I\xc2\xb4m 使用官方Keycloak API。我有一个 id 列表,并希望获取 id 代表的所有用户。所以让\xc2\xb4s 说我有一个包含 ids 的列表1, 7, 9。最好我希望有一个 GET 端点,它接受 ids 列表/数组作为 PathVariable。但似乎没有\xc2\xb4s这样的方法。所以我认为我要么必须为列表中的每个 id 发送单独的请求并获取相应的用户(这将导致 n 个请求,列表的大小为 n),要么我必须获取所有用户并随后过滤它们。难道就没有更好的办法了吗?

\n

rest keycloak

7
推荐指数
1
解决办法
1986
查看次数

JPA 一对一关系创建非唯一外键

我有以下实体:

@Entity
public class A {

  // id, etc..

  @OneToOne
  private B b;
}
Run Code Online (Sandbox Code Playgroud)

该表a已经存在,当我向其中添加新字段b时,hibernate 执行以下操作:

alter table a add column b_id int8
alter table a add constraint FKg76mxqt8whi8t8p4i7el95910 foreign key (b_id) references b
Run Code Online (Sandbox Code Playgroud)

如您所见,外键列b_id不是唯一的。为什么会这样?一对一关系不是意味着外键必须是唯一的吗?这也是我在单向一对一关系的 JPA 规范中发现的内容:

[...] 外键列与表 B 的主键类型相同,并且有一个唯一键约束。

为了使其工作,我必须明确地将@JoinColumn(unique=true)注释添加到该字段。为什么我必须明确地这样做?

java spring hibernate jpa

5
推荐指数
1
解决办法
1394
查看次数

Java,映射一个列表并在一行中进行包含检查还是遍历整个列表?

我有一份员工名单。每个员工都有一个唯一的标识符id。我有一个employeeId并且必须检查由 代表的员工是否employeeid在列表中。我能想到的有两种方法,哪一种更好。有性能差异吗?

1)

if (employees.stream().map(Employee::getId).collect(Collectors.toList()).contains(employeeId)) {
  // do something
}
Run Code Online (Sandbox Code Playgroud)

2)

boolean employeeIsInsideTheList = false;
 for (Employee employee : employees) {
   if (employee.getId() == employeeId) {
      employeeIsInsideTheList = true;
    }
 }
if(employeeIsInsideTheList) {
  // do something
}
Run Code Online (Sandbox Code Playgroud)

java java-8

3
推荐指数
1
解决办法
82
查看次数

尝试向已有数据的表添加新的布尔列时出错

我尝试向实体 Customer 添加一个新属性,该实体已将数据存储在数据库中:

private boolean isArchived;
Run Code Online (Sandbox Code Playgroud)

当我启动 spring 并尝试更新表时,这给了我以下错误:

Error executing DDL "alter table customer add column is_archived boolean not null" via JDBC Statement
Run Code Online (Sandbox Code Playgroud)

这是因为他尝试用 null 初始化isArchived已经存在的行,并且原始类型不能为 null 吗?有没有一种方法可以用 false 来初始化它们,或者我必须使用Boolean而不是boolean允许空值(我不想允许)?

java spring jpa

3
推荐指数
1
解决办法
2415
查看次数

标签 统计

java ×3

jpa ×2

spring ×2

hibernate ×1

java-8 ×1

keycloak ×1

rest ×1