我在用户和主题之间有非常简单的@ManyToMany 关系:
@ManyToMany(mappedBy = "users", fetch = FetchType.LAZY)
public Set<Topic> getTopics() {
return topics;
}
当我通过迭代器遍历这个集合时,每个返回的元素都是主题实体的代理。它的类名是:Topic_javassist_4。但据我所知,集合应该使用具体类型的元素(在我的例子中为“主题”)进行初始化。为什么集合“主题”充满了代理?
更新这似乎是不可能的,但它是!已经在活动事务中,我遍历我的“主题”集合并打印每个主题实体的类名:
package_name.Topic_$$_javassist_4
package_name.Topic
为什么在同一个集合中第一个主题没有初始化,而第二个主题是?
顺便说一句,休眠日志选择语句来选择我的主题实体和值被打印到控制台,它们都是我从集合中的两个主题的正确值
谢谢!