Если вы посмотрите на сообщение об ошибке, вы увидите, что помощнику OneToMany требуется ключ foreign в конце "many" отношения, указывающий на этот "one". User.id является первичным ключом и поэтому не подходит.
Если вы думаете об этом, то на самом деле вы хотите установить отношения с ManyToMany.
Что вы можете создать так:
object User extends User with MetaMegaProtoUser[User] with MappedManyToMany {
...
object friends extends MappedManyToMany(Friends, Friends.friend, Friends.friendee, User)
где у вас есть таблица соединений:
class Friends extends Mapper[Friends] {
object friend extends MappedLongForeignKey(this, User) {
override def dbIndexed_? = true
}
object friendee extends MappedLongForeignKey(this, User) {
override def dbIndexed_? = true
}
def getSingleton = Friends
}
object Friends extends Friends with MetaMapper[Friends]
Если вы хотите, чтобы отношения с друзьями были рефлексивными, вам придется проделать дополнительную работу.
Это очень запоздалый ответ. Я бы посоветовал публиковать их в списке рассылки для очень быстрых ответов: https://groups.google.com/forum/?fromgroups#!forum/liftweb