1
我有以下映射:Hibernate的多對多 - 連接表中不填充上保存
@Entity
public class A{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer aId;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "A_to_B",
joinColumns = {@JoinColumn(name = "aId", referencedColumnName = "aId")},
inverseJoinColumns = {@JoinColumn(name = "bId", referencedColumnName = "bId")})
private Set<B> bList;
與我有B級:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "discriminator", discriminatorType = DiscriminatorType.STRING)
public abstract class B {
@Id
@Column(name = "bId")
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected Integer id;
}
A在B
沒有referenct我有以下代碼:
List<A> someAs = .... // Generated
B b = ... // also generated
b.setAList(someAs);
Session session = sessionFactory.openSession();
for (A a : someAs) {
session.save(a);
}
session.save(b);
session.close();
結果是保存了所有A實例。 B實例也保存了。 但是連接表沒有被填充,所以如果查詢帶有左連接提取的B實例...我得到空的列表。
我該怎麼辦?