【问题标题】:Spring rest data model serializationSpring REST数据模型序列化
【发布时间】:2018-09-29 00:38:50
【问题描述】:

我有一个使用 REST 端点和 一些数据模型 POJO,它们通过以下方式存储在数据库中 Spring 存储库类。 服务层几乎什么都不做, 相反,它将请求委托给存储库和数据模型。 模型对象不会在会话中持久化或缓存。

在这种情况下, 数据模型元素是否应该实现Serializable

最佳做法是什么? 示例代码,

public interface UserService {

    Optional<User> getUserByLoginName(String loginName);

    User findById(Integer id);

    User findByUsername(String username);

    User saveUser(User user);
}

实现类也没什么特别的,只是将请求委托给repository,

@Repository
public interface UserRepository extends JpaRepository<User, Integer> {
    Optional<User> findByLoginName(String loginName);
    Optional<User> findByName(String name);
    List<User> findByFilial(String name);
}

型号,

@Entity
@Table(name = "user")
public class User implements Serializable{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false, updatable = false)
    private Integer id;

    @Column(nullable = false,unique = true)
    private String loginName;

    @Column(nullable = false)
    private String name;
    .....
    // getters and setters and rest of the fields
  }

【问题讨论】:

  • 能否为您的问题添加更多解释和示例代码?我觉得这有点晦涩。
  • 不序列化时,不需要序列化实现。简短的回答:没有。
  • 添加示例代码。可能开发人员想要实现缓存但没有成功。我没有找到任何其他好的理由,所以也想与社区核实一下。

标签: java spring spring-boot spring-data


【解决方案1】:

Here你可以阅读Java中使用序列化的目的。

在您的场景中,您正在使用 spring 存储库将实体保存到数据库并从数据库加载实体,并且这些实体绝对不需要是 Serializable

【讨论】:

  • 我知道序列化的使用,这段代码不是我的。当我看到这一点时,我开始思考这是什么原因,也许在这种情况下有一些我不知道的原因。可能开发人员计划创建缓存,但确实有机会这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-29
  • 1970-01-01
  • 2018-09-10
  • 1970-01-01
  • 2017-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多