@Entity(name = "Account")
@Table(name = "account")
@SecondaryTable(name = "account_details")
@FilterDefs({
@FilterDef(name = "activeAccountV1", parameters = @ParamDef(name = "active", type = "boolean")),
@FilterDef(name = "activeAccountV2", parameters = @ParamDef(name = "active", type = "boolean"))})
@Filters({
@Filter(name = "activeAccountV1", condition = "{a}.active = :active and {ad}.deleted = false", aliases = {
@SqlFragmentAlias(alias = "a", table = "TEST.account"), @SqlFragmentAlias(alias = "ad", table = "TEST.account_details"), }),
@Filter(name = "activeAccountV2", condition = "{a}.active = :active", aliases = {
@SqlFragmentAlias(alias = "a", table = "TEST.account") })
})
public class AccountPO {
@Id
private Long id;
private Double amount;
private Double rate;
private boolean active;
@Column(table = "account_details")
private boolean deleted;
}