Docker 集线器包含 Postgres 数据库的多个版本(标签),例如:
postgres 12.3 版和 12.3-alpine 之间有什么区别?
我有一些@ManyToMany关系的实体:
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "buses_drivers",
joinColumns = @JoinColumn (name = "driver_id_inner", referencedColumnName = "driver_id"),
inverseJoinColumns = @JoinColumn (name = "bus_id_inner", referencedColumnName = "bus_id"))
private List<Bus> buses;
Run Code Online (Sandbox Code Playgroud)
和
@ManyToMany(mappedBy = "buses", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private List<Driver> drivers;
Run Code Online (Sandbox Code Playgroud)
当Driver用某些Bus型号执行保存模型时,一切正常.表buses_drivers存储这些实体的所有键.但是当Bus使用驱动程序保存模型时,表格不会更改.我认为inverseJoinColmns映射问题.
在一些转换ArrayList有3个元素后,ArrayList大小最大然后是3.因此NullPointerException在使用forEachcircle 时会发生.
如何避免这种情况?我的意思是不!=null检查.
例:
List<String> busesIdToRemove = driverWrapper.getBusesIdToRemove();
Run Code Online (Sandbox Code Playgroud)
列表包含id的那些实体,将被删除.发生错误:
for (String id : busesIdToRemove) {
Long longId = Long.valueOf(id); //here. Because id is null ...
}
Run Code Online (Sandbox Code Playgroud)
但实际上,list只包含非空值的元素.
例如[index,value].
1,"41";
4,"50"......
有关索引[0],[2],[3]的元素的信息在调试器中不存在,并且对于get(0)例如方法返回null .
解决问题:arrayList.removeAll(Collections.singleton(null));