如何构建JPA联盟:一个人与其他人(朋友)有关系

如何构建JPA联盟:一个人与其他人(朋友)有关系,jpa,playframework,playframework-2.1,ebean,Jpa,Playframework,Playframework 2.1,Ebean,我有一个有朋友的实体人,因此与其他人的联系: @Entity public class Person extends Model { @Id @Constraints.Required @Formats.NonEmpty public Long id; @OneToMany public List<Person> friends = new ArrayList<>(); 我得到这个错误: [error] Caused

我有一个有朋友的实体人,因此与其他人的联系:

@Entity
public class Person extends Model {

    @Id
    @Constraints.Required
    @Formats.NonEmpty
    public Long id;

    @OneToMany
    public List<Person> friends = new ArrayList<>();
我得到这个错误:

[error] Caused by: org.h2.jdbc.JdbcSQLException: Column "T1.PERSON_ID" not found; SQL statement:
[error] select t0.id c0
[error]         , t1.id c1, t1.first_name c2, t1.last_name c3, t1.gender c4, t1.self_description c5, t1.profile_image c6, t1.registration_date c7, t1.person_status c8, t1.second_mail c9, t1.user_code c10, t1.user_email c11, t1.work_place_id c12, t1.job_id c13, t1.life_cycle_stage_id c14, t1.role_id c15, t1.mentor_id c16 
[error] from person t0
[error] left outer join person t1 on t1.person_id = t0.id 
[error] where t0.id = ?   
[error] order by t0.id [42122-168]
[error]     at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
[error]     at org.h2.message.DbException.get(DbException.java:169)
[error]     at org.h2.message.DbException.get(DbException.java:146)
[error]     at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:138)
[error]     at org.h2.expression.Comparison.optimize(Comparison.java:159)
[error]     at org.h2.command.dml.Select.setEvaluatableRecursive(Select.java:944)
[error]     at org.h2.command.dml.Select.preparePlan(Select.java:923)
[error]     at org.h2.command.dml.Select.prepare(Select.java:823)
[error]     at org.h2.command.Parser.prepareCommand(Parser.java:218)
[error]     at org.h2.engine.Session.prepareLocal(Session.java:415)
[error]     at org.h2.engine.Session.prepareCommand(Session.java:364)
[error]     at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1109)
[error]     at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
[error]     at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:264)
[error]     at com.jolbox.bonecp.ConnectionHandle.prepareStatement(ConnectionHandle.java:820)
[error]     at com.avaje.ebeaninternal.server.query.CQuery.prepareBindExecuteQuery(CQuery.java:365)
[error]     at com.avaje.ebeaninternal.server.query.CQueryEngine.findMany(CQueryEngine.java:174)
[error]     ... 44 more

有什么主意吗?

你能试试这样的吗

@ManyToOne(mappedBy="friends") 
@OneToMany 
public List<Person> friends = new ArrayList<>();
@ManyToOne(mappedBy=“friends”)
@独身癖
public List friends=new ArrayList();

newarraylist();有机类型丢失了!你能试试这样的吗<代码>@ManyToOne(mappedBy=“friends”)@OneToMany public List friends=new ArrayList()在Java7中,您不再需要将类型放入impl部分中。mappedby的多对一不存在。我尝试了
@manytomy(mappedBy=“friends”)
,但没有解决问题
[error] play - Duplicate column name "PERSON_ID"; SQL statement:
create table person_person (
person_id                      bigint not null,
person_id                      bigint not null,
constraint pk_person_person primary key (person_id, person_id)) [42121-168] [ERROR:42121, SQLSTATE:42S21]
[info] c.j.b.BoneCP - Shutting down connection pool...
[info] c.j.b.BoneCP - Connection pool has been shutdown.
[error] Test common.person.PersonModelTest.addContact failed: Database 'default' is in inconsistent state![An evolution has not been applied properly. Please check the problem and resolve it manually before marking it as resolved.]
[error]     at play.api.db.evolutions.Evolutions$.checkEvolutionsState(Evolutions.scala:177)
[error]     at play.api.db.evolutions.Evolutions$.applyScript(Evolutions.scala:275)
[error]     at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1$$anonfun$apply$1.apply$mcV$sp(Evolutions.scala:444)
[error]     at play.api.db.evolutions.EvolutionsPlugin.withLock(Evolutions.scala:483)
[error]     at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:439)
[error]     at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:437)
[error]     at scala.collection.immutable.List.foreach(List.scala:309)
[error]     at play.api.db.evolutions.EvolutionsPlugin.onStart(Evolutions.scala:437)
[error]     at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:63)
[error]     at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:63)
[error]     at scala.collection.immutable.List.foreach(List.scala:309)
[error]     at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:63)
[error]     at play.api.Play$$anonfun$start$1.apply(Play.scala:63)
[error]     at play.api.Play$$anonfun$start$1.apply(Play.scala:63)
[error]     at play.utils.Threads$.withContextClassLoader(Threads.scala:18)
[error]     at play.api.Play$.start(Play.scala:62)
[error]     at play.api.Play.start(Play.scala)
[error]     at play.test.Helpers.start(Helpers.java:354)
[error]     at common.CommonTest.setUp(CommonTest.java:20)
[error]     ...
@ManyToOne(mappedBy="friends") 
@OneToMany 
public List<Person> friends = new ArrayList<>();