我有User
类和BattleReportILogItem
类。 这个类别(User
,BattleReportILogItem
)是@Entity
。JPA从ManyToMany中选择,怎么样?
我不知道,如何编写代码从这个Entity
中选择。
我想从BattleReportILogItem
中选择setOfBattleLogs
。
User
有0..NBattleReportILogItem
USER:
@Entity
@Table(name = DomainConstant.TABLE_USER)
public class User implements Serializable {
@Id
@Column(name = DomainConstant.DOMAIN_USER_ID)
@GeneratedValue
private Long userId;
@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name = DomainConstant.VIEW_USER_BATTLE_LOGS, joinColumns = {
@JoinColumn(name = DomainConstant.DOMAIN_USER_ID)}, inverseJoinColumns = {
@JoinColumn(name = DomainConstant.DOMAIN_BATTLE_REPORT_ID)})
private Set<BattleReportILogItem> setOfBattleLogs = new HashSet<>();
....(other stuff, get and set methods...)
BattleReportILogItem
@Entity
@Table(name = DomainConstant.TABLE_BATTLE_REPORT)
public class BattleReportILogItem implements Serializable {
@Id
@GeneratedValue
@Column(name = DomainConstant.DOMAIN_BATTLE_REPORT_ID)
private Long BattleReportILogItemId;
@ManyToMany(mappedBy = "setOfBattleLogs")
private Set<User> setOfBattleLogs = new HashSet<>();
....(other stuff, get and set methods...)
我试试:
Query q = em.createQuery("select c1 \n"
+ "from User c1 \n"
+ "join c1.setOfBattleLogs c2 \n"
+ "where c1.userId = :c1userId", User.class);
...所以,这个代码是错误的,我知道... :-(
你能一些身体帮我吗?我在这个stackoverflow站点上读了一些线程,但它不能帮我解决我的问题。
谢谢你的帮助!
亲爱的托马斯,感谢您的帮助和明确的答案!工作很好。 4分钟后我会接受你的答复。 – nustauos