java - 方法是否应该操作惰性集合?

标签 java hibernate

我想知道方法是否应该操作惰性集合? 这是示例:

public class Person {
    // lazy collection
    @ManyToOne(fetch = FetchType.LAZY)
    private List<Friend> friends;

   public Friend findFriend(String name) {
      //pseudo code
      return friends.findByName(name);
   }
}

findFriend 是正确的方法吗?当我在事务服务方法中使用它时,那么就可以了,但是有人可能在事务之外使用它,然后发生异常。

创建操作惰性集合的方法是一种不好的做法吗?

最佳答案

良好的界面可以让你很容易做正确的事情,但很难做错误的事情。

在您的示例中,任何客户端代码都必须了解您提到的前提条件。默认情况下,这并没有错,但很容易导致仅在运行时出现的问题。

这里最起码的事情可能是改进此类/方法的名称,至少使该前提条件更加“明确”。

关于java - 方法是否应该操作惰性集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42670454/

相关文章:

java - Java 11 (Zulu) 中的 DateTimeFormatter 不适用于 AM/PM 格式

java - 模型属性存储在哪里?

java - 如何手动提交托管事务

java - 在 CrudRepository 中创建 JPQL 查询

java - 如何使用 Hibernate 在 dynamoDB 中动态创建表

java - GWT 平台代理

java - 静态字段的资源使用情况

java - 运行 Apache Camel 时出错

java - CascadeType.Persist 没有按预期工作

java - JPA查询验证失败异常