Tag: abstraction layer

我应该将实体转换为Repository对象内的DTO并将其返回到服务层吗?

我想在这里找到两个非常相似的问题的答案: 我应该将实体转换为Repository对象内的DTO并将其返回到服务层吗? 要么 可以从存储库层返回DTO对象吗? 现在我陷入了我的Servlet(Servie层),例如尝试从RestaurantOwnerRepository检索所有的Restaurant对象: // RestaurantOwnerService (Servlet) @Override @Transactional public List getAvailableRestaurants() { List availableRestaurants = restaurantOwnerRepository.getRestaurants(getSessionId()); return null; } 其中Restaurant是一个@Entity注释类 – 这似乎是我不应该做的第一件事,因为Service Layer现在知道一个非常低级的对象,它违反了在每一层抽象我的数据的尝试。 如果我将每家Restaurant改为RestaurantDTO那就不会这样 – 但我应该这样做吗? 基本上改变: // RestaurantOwnerRepository @Override public List getRestaurants(String sessionId) { RestaurantOwner restaurantOwner = this.get(sessionId); // .. getting restaurants .. return availableRestaurants; } 至 // RestaurantOwnerRepository @Override public List […]