我当前正在创建一个ebean模型User
,试图将其映射回自身。由于User
及其子级使用数据结构,因此我的想法是重用它们而不创建新的模型/表。
@Entity
public class User extends Model {
@Id
private String id;
private String email;
@ManyToOne(cascade = CascadeType.PERSIST)
private User parent;
@ElementCollection(fetch = FetchType.LAZY)
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private List<User> childs = new ArrayList<>();
....
}
数据库模式如下:
CREATE TABLE user (
id CHAR(7),
email CHAR(255),
parent_id CHAR(255),
...
);
从孩子到父母的映射@ManyToOne
工作正常。但是在引入@OneToMany
映射的情况下运行应用程序时,出现以下错误:
javax.persistence.PersistenceException: Error on models.User.childs Can not find mappedBy property [user] in [models.User]
我怀疑ebean试图在user_id
表中查找user
,实际上它是由parent_id
链接为数据库结构中的屏幕。
任何想法,即使这甚至得到了ebean的支持还是我在这里缺少什么?