【发布时间】:2013-01-04 06:14:12
【问题描述】:
我有两个班级:
@Entity
@Table(name = "clients")
public class Client extends Model {
@Id
public int id;
public String name;
@OneToOne
public Contact contact;
}
@Entity
@Table(name = "contacts")
public class Contact extends Model {
@Id
public int id;
@OneToOne
@Column(name = "client_name")
public String clientName;
}
现在我想设置 OneToOne 关系,但使用 client_name 列 (on clients.name=contacts.client_name) 加入。该怎么做?
我知道使用主键加入更好,但数据库结构是固定的,我无法更改。
【问题讨论】:
-
我认为你应该使用,不确定 Ebean 是否支持它:@JoinColumn(name = "client_name") in Context.class(可选)和@OneToOne(mappedBy="client_name")(强制) .
-
@adis 现在抱怨
PersistenceException: Error on models.Client.contact. mappedBy property [models.Contact.clientName]is not a OneToOne?可能是因为clientName是一个字符串。 -
@adis 但如果我做到
Client那么它会说Unknown column 't1.client_name_id'
标签: java jpa orm playframework-2.0 ebean