小编The*_*ger的帖子

JPA - 悲观锁 - 当锁存在时会发生什么?

背景信息:我遇到一个问题,其症状是实体更新未完成。查看我的日志,我可以看到我期望的更新 sql 语句,但它们几乎是同时的(相隔 0.012 秒),并且应用程序在更新实体时使用悲观读锁。

这引出了我的问题:当存在悲观锁时预期的行为是什么?我还应该看到多个更新查询吗?我应该预期会抛出 PessimisticLockException,对吧?我还应该寻找其他指标吗?

Hibernate 是我的 JPA 实现。

java hibernate jpa locking

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

同步方法中的同步块

我正在查看包含synchronized方法的第三方库中的一些代码,并且在此方法中有一个锁定实例变量的synchronized块.它与此类似:

public class Foo {
   final Bar bar = new Bar();

   public synchronized void doSomething() {
       // do something
       synchronized(bar) {
           // update bar
       }
   }
   ...
}
Run Code Online (Sandbox Code Playgroud)

这有意义吗?如果是这样,在同步方法中有一个同步语句有什么好处?

鉴于同步方法锁定整个对象,对我来说似乎是多余的.在处理非私有的实例变量时,这种方法是否有意义?

java concurrency multithreading synchronization

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

打字稿 getter/setter 命名约定

我来自 Java 背景,我默认在我熟悉的 Typescript/Angular 组件类中使用 getter/setter 命名约定。

getFoo()

setFoo()
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不是最佳实践,而是我应该使用约定

get foo()

set foo()
Run Code Online (Sandbox Code Playgroud)

问题

  • 这纯粹是化妆品吗?有什么好处吗?我不明白为什么这会受到青睐,因为据我所知,它与用于其他方法的命名约定不一致。
  • 是否有正式的风格指南推荐这种做法?

naming-conventions typescript angular

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

Lombok用@ ToString.Exclude排除字段不起作用

我正在使用Lombok删除样板代码。我正在尝试将实体打印到控制台,但出现StackOverflowError。该实体与另一个实体具有双向关系,因此我想从toString方法中排除该实体。

我的实体看起来像这样:

@Entity
@Data
public class Foo {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long fooId;

    private String name;

    @ManyToOne
    @JoinColumn(name = "barId")
    @EqualsAndHashCode.Exclude
    @ToString.Exclude
    private Bar bar; 
}
Run Code Online (Sandbox Code Playgroud)

这是我第一次尝试使用@ToString.Exclude它,但似乎没有表现。我使用不正确吗?我只想打印出来fooIdname当我在Foo对象上调用toString时。

编辑

我熟悉从顶级@ToString注释中排除或包含字段的替代方法。我试图避免这种情况。我只想@Data在类级别使用,并注释应排除的字段。

编辑2

仍在简化类上复制。龙目岛1.18.8版本。

在此处输入图片说明

java lombok

4
推荐指数
2
解决办法
2016
查看次数

Java 正则表达式 - 什么意思?i:是什么意思?

我遇到了用 Java 代码编写的以下条件:

    String pattern = "(?i:U[A-Z0-9]C.*)";
    if (foo.matches(pattern))) {
    ...
Run Code Online (Sandbox Code Playgroud)

我不明白什么?i:意思。我见过(?i)用来表示不区分大小写的,但不确定这里的形式。

谢谢你的帮助!

java regex

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

Azure - 在 Powershell 中断开 VNet 集成

通过 Azure 门户,我可以断开 VNet 集成,如下所示。我需要使用 Az 模块在 Powershell 脚本中执行此操作。这可能吗?

在此输入图像描述

powershell azure azure-powershell azure-resource-manager az

2
推荐指数
1
解决办法
1580
查看次数

Bash 脚本 - 变量引用中的感叹号

我正在查看包含以下内容的脚本(过去已成功使用过):

node=1
while :
do
    userKey=WEB_${node}_USER
    userVal=`echo ${!userKey}`
Run Code Online (Sandbox Code Playgroud)

我一直无法弄清楚为什么会在这样的变量引用中添加感叹号。“!”的目的是什么?在这种情况下服务?

我很少写很多脚本,所以如果我遗漏了任何细节,请告诉我,我会尽力提供更多信息。我无法在其他地方找到这个答案。

提前致谢!

unix bash shell

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

我应该索引已经是复合索引一部分的各列吗?

我的表中有4列的复合唯一索引和性能问题的查询,它们分别过滤了2列.也许是一个愚蠢的问题,但我是否应该对各个列进行索引以提高性能?谢谢你的帮助!

sql database oracle indexing database-performance

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