这是我的代码的精简版:
@Entity
public class Item implements Serializable{
@Id
@GeneratedValue
private long id;
@ElementCollection(fetch=FetchType.EAGER ,targetClass=Cost.class)
@CollectionTable(name="ItemCost", joinColumns = {@JoinColumn(name="itemId")})
private Set<Cost> costs= new HashSet<Cost>();
@ElementCollection(fetch=FetchType.EAGER ,targetClass=ItemLocation.class)
@CollectionTable(name="ItemLocation", joinColumns = {@JoinColumn(name="itemId")})
private Set<ItemLocation> itemLocations;
}
上面的代码是否允许?我有两个与@ElementCollection 一起使用的可嵌入类Cost 和ItemLocation。
问题:当我尝试运行命名查询时
@NamedQuery(name = "Item.findAll", query = "SELECT i FROM Item i")
我有奇怪的行为。第二个元素集合(ItemLccation 表)中的记录加倍(插入到表中)。