Я пишу код сканирования всей информации с сайта.Я хочу, чтобы при фильтрации и сохранении в базе данных данные, которые я фильтрую, не содержали базу данных.Если содержит базу данных, я не хочу ее сохранять («потому что она дублируется»).Я пишу код ниже:
@Data
@Entity
public class PostFeedItem {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "link_profile")
private String linkProfile;
@Column(name = "link_image")
private String linkImage;
@Column(name = "full_name")
private String fullName;
@Column(name = "content_title")
private String contentTitle;
@Column(name = "time_published")
private String timePublished;
@Column(name = "number_view")
private String numberView;
@Column(name = "number_comment")
private String numberComment;
@Column(name = "number_clip")
private String numberClip;
@Column(name = "point")
private String points;
@ElementCollection
@CollectionTable(name = "tags", joinColumns = @JoinColumn(name = "tag_id"))
@Column(name = "tags_post")
private List<String> tags = new ArrayList<>();
}
Теперь я получаю все данные из базы данных методом:
public Iterable<PostFeedItem> findAllPostFeedItemInDatabase() {
return postFeedItemRepository.findAll();
}
У меня есть список listPostFieldItems, и я хочу сравнить с postFeedItemInDatabase.Если какой-либо элемент из listPostFieldItems совпадает с какими-либо элементами postFeedItemInDatabase, я не хочу его сохранять.Если не совпадают, я сохраняю это.Я пишу код ниже:
List<PostFeedItem> postFeedItemInDatabase = (List<PostFeedItem>) findAllPostFeedItemInDatabase();
if(!postFeedItemInDatabase.isEmpty()) {
for (int i = 0; i < listPostFieldItems.size(); i++) {
for (int j = i+1; j < postFeedItemInDatabase.size(); j++) {
if((listPostFieldItems.get(i).getContentTitle().equals(postFeedItemInDatabase.get(j).getContentTitle()))) {
postFeedItemRepository.save(listPostFieldItems.get(i));
}
}
}
} else {
listPostFieldItems.forEach(postFeedItem -> {
postFeedItemRepository.save(postFeedItem);
});
}
Но это не сработало.У меня вопрос.Как сравнить List<PostFeedItem> listPostFieldItems
с List<PostFeedItem> listItemFromDatabase
и сохранить все объекты из listPostFieldItems
, если какой-либо элемент из listPostFieldItems
не соответствует listPostFieldItems
.