java - 如何使用辅助键上的联接建立一对一关系?

标签 java jpa orm playframework-2.0 ebean

我有两门课:

@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 列(在clients.name=contacts.client_name 上)加入。如何做到这一点?

我知道最好使用主键加入,但数据库结构是固定的,我无法更改它。

最佳答案

尝试:

@OneToOne
@Column(name = "client_name")
@JoinColumn(name = "client_name", referencedColumnName = "name")
public Client client;

关于java - 如何使用辅助键上的联接建立一对一关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14434440/

相关文章:

java - 将实体字段更改为不同类型的字段

python - 有什么理由不使用 SQLObject 而不是 SQLAlchemy?

java - 你能放一个 <c :cout> tag inside the `value` attribute of a <c:set> tag?

java控制台输出成为下一个控制台输入

java - 使用迭代器进行 "downward"次迭代的优雅方式

分布式环境中的 JPA PersistenceContext

java - view.getRight 返回 ImageView 的宽度,而不是位置

java - 如何使用JPA为Hashmap的值设置列名?

java - 更新后JPA OneToMany问题

c# - 在运行时在 ServiceStack.OrmLite 中获取类的表名/避免硬编码表名