xem xét lớp Account
, RealAccount
, VirtualAccount
, và Operation
ví dụ rằng:Sử dụng Hibernate Tiêu chuẩn API, làm thế nào để truy vấn cho một subproperty của một tài sản mà chỉ tồn tại với nhiều loại tài sản nhất định
class Account { }
class RealAccount extends Account { String name; }
class VirtualAccount extends Account { }
class Operation { Account account; }
Điều này có nghĩa rằng:
- Chỉ
RealAccount
có một trường gọi làname
. tài khoản Operation
's có thểRealAccount
hoặcVirtualAccount
.
tôi muốn truy vấn cho tất cả Operation
s mà thuộc về một RealAccount
với một tên cụ thể:
session.createCriteria(Operation.class)
.createAlias("account", "_account")
.add(Restrictions.eq("_account.name", "Alice"))
.list();
này thất bại.
Câu hỏi của tôi: Sử dụng "cũ" Tiêu chuẩn Hibernate API, làm thế nào tôi có thể truy vấn cho tên tài khoản rằng chỉ tồn tại khi Operation
's tài khoản là một RealAccount
? Có lẽ cái gì envolving DetachedCriteria
và Subqueries
...
Đó không phải là tiêu chuẩn API. – MarcG