我有兩張桌子,Table CustomerID | CustomerNumber | Name | City | PhoneNumberTable AccountsID | CustomerNumber | AccountNumber | Bank兩個表的關系是CustomerNumber我的客戶映射public class Customer { @Id @Column(name = "ID") private Integer ID; @Column(name = "CustomerNumber") private Integer customerNumber; @Column(name = "Name") private String name; @Column(name = "City") private String city; @Column(name = "PhoneNumber") private Integer phoneNumber; @OneToMany(fetch = FetchType.LAZY, mappedBy = "customerNumber") private Collection<Account> accounts;}和帳戶映射public class Account { @Id @Column(name = "ID") private Integer ID; @JoinColumn(name = "CustomerNumber", referencedColumnName="CustomerNumber") @ManyToOne(fetch = FetchType.LAZY) private Customer customer; @Column(name = "AccountNumber") private Integer accountNumber; @Column(name = "Bank") private String bank;}函數 i DAOpublic SearchResult listByCriteria(Customer object, int maxResults, String sortProperty, boolean ascending) { SearcResult result = new SearchResult(); int resultSize = 0; Criteria customerCriteria = ((Session)em.getDelegate()).createCriteria(Customer.class); if(maxResults > 0) { customerCriteria.setMaxResults(maxResults); } try { if(object != null) { customerCriteria = QueryHelper.getCustomerCriteria(object, customerCriteria, ""); resultSize = QueryHelperUtil.countResults(customerCriteria); result.setSize(resultSize); customerCriteria.setFirstResult(index); QueryHelperUtil.sortResults(customerCriteria, sortProperty, ascending); result.setList(customerCriteria.list()); } } } }}現在我只想搜索擁有銀行賬戶的客戶。我想在 Hibernate 中設置一個標準。但我就是不知道該怎么做?搜索時,您可以輸入客戶編號、客戶姓名、電話號碼和/或城市,然后選擇要顯示的結果數量。起初,我以為我可以編寫一個命名查詢,但隨后您就擁有了搜索結果編號和在不同列上對結果進行排序的功能。我在這里搜索并查看了不同的類似問題,但我無法讓它發揮作用。我試圖在按條件列出客戶的功能中添加帳戶條件,但它不起作用,我不知道它是否與帳戶作為集合有關?有人可以幫我嗎?
帶有兩個表和集合的 HIbernate 標準
慕尼黑5688855
2021-09-12 20:06:50