Ich versuche, ein Soft-Löschen über meine gesamte Plattform zu implementieren. Jede Tabelle hat eine deleted_on
Spalte, die zum Herausfiltern gelöschter Zeilen verwendet wird.Filterzeilen in Join-Tabelle - viele zu viele in Hibernate
Dies beinhaltet die Join-Tabelle, die ich zwischen meinen Dateien und Benutzern habe. Ich hatte kein Glück, etwas zu finden, das helfen könnte. Gerade jetzt sehen meine Klassen wie diese
@Entity
public class File {
@ManyToMany
@JoinTable(
name = "file_user",
joinColumns = @JoinColumn(name = "file_id", referencedColumnName = "file_id"),
inverseJoinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id")
)
private List<User> users;
// Constructor and other fields
}
Benutzerklasse:
@Entity
public class User {
@ManyToMany(mappedBy = "users")
private List<FileData> files = new ArrayList<>();
// Constructor and other fields
}
Wenn es möglich ist, würde ich den folgenden Code in der Lage sein möge ausführen, ohne es zu Filterung im Geschäft Code
File file = fileRepository.findOne(fileKey);
file.getUsers().remove(user);
fileRepository.save(file);
@autin die '@ Where' Annotation sollte stattdessen' @ WhereJoinTable' sein – Kyefer