You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Client can login by one or switch login between among Accounts. A Account can login by one or other difference Clients.
Relation Client - Account is many-to-many, so I create a entity ClientAccount to store client and account id.
Client
public class Client {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "brand_name", nullable = false, unique = true)
private String brandName;
@Column(name = "status")
private String status;
@Column(name = "date_expire", nullable = false)
private Long dateExpire;
// bi-directional many-to-one association to ClientAccount
@OneToMany(mappedBy = "client")
@JsonManagedReference
private Set<ClientAccount> clientAccounts = new HashSet<ClientAccount>();
}
Account
public class Account {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(columnDefinition = "bytea", unique = true, nullable = true)
private String email;
@Column(columnDefinition = "text", name = "user_name")
private String userName;
@Column(columnDefinition = "text", name = "first_name")
private String firstName;
@Column(columnDefinition = "text", name = "last_name")
private String lastName;
// bi-directional many-to-one association to ClientAccount
@OneToMany(mappedBy = "account")
@JsonManagedReference
private Set<ClientAccount> clientAccounts;
}
ClientAccount
public class ClientAccount {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "account_id")
private Long accountId;
@Column(name = "client_id")
private Long clientId;
// bi-directional many-to-one association to Client
@ManyToOne
@MapsId("clientId")
@JsonBackReference
@JoinColumn(name = "client_id", insertable = true, updatable = true)
private Client client;
// bi-directional many-to-one association to Account
@ManyToOne
@MapsId("accountId")
@JsonBackReference
@JoinColumn(name = "account_id", insertable = true, updatable = true)
private Account account;
}
In case need search by branchName or firstName or lastName or email via input keyword, how is implement?
I see in your guideline example only show AND condition, how can I combine between AND and OR in query while join multiple table in this case is 3 tables(Client, ClientAccount, Account)
Specification<Client> searchClientAccountByKeyword(String keyword) {
// how can implement Client join ClientAccount join Account and combine filter condition by keyword?
// Client.join.ClientAccount.join.Account.and(branchName equal keyword or firstName equal keyword or ,....)
}
The text was updated successfully, but these errors were encountered:
I have relationship entity like this one
The
Client
can login by one or switch login between amongAccounts
. AAccount
can login by one or other differenceClients
.Relation
Client - Account
ismany-to-many
, so I create a entityClientAccount
to store client and account id.Client
Account
ClientAccount
In case need search by branchName or firstName or lastName or email via input keyword, how is implement?
I see in your guideline example only show AND condition, how can I combine between AND and OR in query while join multiple table in this case is 3 tables(Client, ClientAccount, Account)
The text was updated successfully, but these errors were encountered: