Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 筛选联接表中的行-Hibernate中的多对多_Java_Spring_Hibernate_Jpa_Spring Boot - Fatal编程技术网

Java 筛选联接表中的行-Hibernate中的多对多

Java 筛选联接表中的行-Hibernate中的多对多,java,spring,hibernate,jpa,spring-boot,Java,Spring,Hibernate,Jpa,Spring Boot,我试图在我的整个平台上实现一个软删除。每个表在列上都有一个deleted\u,用于筛选已删除的行 这包括我的文件和用户之间的连接表。我没能找到任何有用的东西。现在我的课是这样的 @Entity public class File { @ManyToMany @JoinTable( name = "file_user", joinColumns = @JoinColumn(name = "file_id", referencedColumnName

我试图在我的整个平台上实现一个软删除。每个表在列上都有一个
deleted\u,用于筛选已删除的行

这包括我的文件和用户之间的连接表。我没能找到任何有用的东西。现在我的课是这样的

@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
}

如果您是
Hibernate
作为您的JPA提供者,那么您可以使用
@Where
注释

@Entity
@Where(clause="deleted_on=1")
public class User {

    @ManyToMany(mappedBy = "users")
    private List<FileData> files = new ArrayList<>();

    // Constructor and other fields
}
@实体
@其中(第条=“已删除”=1)
公共类用户{
@多人(mappedBy=“用户”)
私有列表文件=新的ArrayList();
//构造函数和其他字段
}
这将对用户类的所有查询应用where子句

补充说明:

您需要在所有关系中再次指定@where子句

@ManyToMany
    @JoinTable(
        name = "file_user",
        joinColumns = @JoinColumn(name = "file_id", referencedColumnName = "file_id"),
        inverseJoinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id")
    )
@Where(clause="deleted_on=1")
    private List<User> users;
@manytomy
@可接合(
name=“文件\用户”,
joinColumns=@JoinColumn(name=“file\u id”,referencedColumnName=“file\u id”),
inverseJoinColumns=@JoinColumn(name=“user\u id”,referencedColumnName=“id”)
)
@其中(第条=“已删除”=1)
私人名单用户;

@AUT在
@Where
注释中应改为
@WhereJoinTable
@Entity
@Where(clause="deleted_on=1")
public class User {

    @ManyToMany(mappedBy = "users")
    private List<FileData> files = new ArrayList<>();

    // Constructor and other fields
}
@ManyToMany
    @JoinTable(
        name = "file_user",
        joinColumns = @JoinColumn(name = "file_id", referencedColumnName = "file_id"),
        inverseJoinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id")
    )
@Where(clause="deleted_on=1")
    private List<User> users;