我有一个使用REST端点的Spring启动项目 一些数据模型POJO通过存储在数据库中 Spring存储库类。 服务层几乎什么都没做, 相反,它将请求委托给存储库和数据模型。 模型对象不会在会话中持久存储或缓存。
在这种情况下,
数据模型元素应该实现Serializable
吗?
最佳做法是什么? 示例代码,
public interface UserService {
Optional<User> getUserByLoginName(String loginName);
User findById(Integer id);
User findByUsername(String username);
User saveUser(User user);
}
在实现类中没有什么特别之处,只需将请求委托给存储库,
@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
}
答案 0 :(得分:1)
Here您可以阅读有关在Java中使用序列化的目的。
在您的方案中,您使用spring存储库将实体保存到数据库或从数据库加载实体,并且实体绝对不需要Serializable
。