使用@angular/cdk 7.2.1:如果定义一个包含 cdkDropList 和嵌套的 cdkDrag 组件列表的父组件,则在嵌套的子组件中定义 cdkDragHandle 不起作用。如果相同的结构都在同一个组件中,则 cdkDragHandle 可以完美地工作。
https://stackblitz.com/edit/angular-wfvmuj?embed=1&file=src/app/hello.component.html
即使没有在与 cdkDrag 相同的组件中定义,是否有人找到了使 cdkDragHandle 工作的修复程序?
我们有一个奇怪的案例OutOfMemory(堆)。给定这种方法
private void processRemainingIds(final ITransaction tx) {
remainingIds.stream()//
.map(this::getInternalMessage)//
.filter(this::isMessageNeedsProcessing)//
.forEach(msg -> registerMessageAsMissing(msg, tx));
}
Run Code Online (Sandbox Code Playgroud)
如果remainingIds足够大,则此方法会相当稳定地填充堆。
getInternalMessage
将加载“正常”大小的数据模型结构(即,没有斑点/小块等,只有几十个字符串和数字)registerMessageAsMissing
内部调用同步方法(可能是相关的)getInternalMessage
“同步”完全改变了内存行为,堆大小不再增加我希望上面的实现会创建很多内部消息,检查并在需要时对其进行处理,但随后丢弃每个对象并偶尔运行GC。但这不是我们所看到的,相反,我们得到了
OOM的标准问题,即 我熟悉的是“某些东西在固定住您的对象”。但是为什么要进行getInternalMessage
同步更改呢?
我们有一个基于 Hibernate (33.) 的 Web 应用程序,并发现与交换受唯一索引限制的数据值对相关的问题。在我们的机票 HBM 中,我们有
<many-to-one name="participants" class="net.umbrella.entity.ParticipantModel" fetch="select">
<column name="PARTICIPANTID" not-null="false" />
</many-to-one>
<many-to-one name="flights" class="net.umbrella.entity.FlightModel" fetch="select">
<column name="FLIGHTID" not-null="true" />
</many-to-one>
Run Code Online (Sandbox Code Playgroud)
从功能上讲,可以采用分配给参与者 P1 的票证 A 和分配给参与者 P2 的票证 B 的数据对并交换两个参与者。票证 A 最终将分配给参与者 P2,票证 B 将分配给参与者 P1。然而,FLIGHTID + PARTICIPANTID 有一个唯一的约束。
当 Hibernate 发出第一次更新以将票证 A 上的参与者 P1 更改为 P2 时,会引发 GenericJDBCException
Attempt to insert duplicate key row in object 'FLIGHTTICKET' with unique index 'IDX_FLIGHTTICKET_UQ'
Run Code Online (Sandbox Code Playgroud)
有人对此有共同的解决方案吗?
谢谢西蒙