gpt4 book ai didi

java - ManyToOne 关系,其中通过两列的串联引用一列

转载 作者:行者123 更新时间:2023-12-02 04:12:27 27 4
gpt4 key购买 nike

我正在尝试在两个实体之间创建多对一关系。这些表格看起来像这样:

<小时/>
Table:EQUIPMENT
----------------
ID (Integer PK)
FIXTURE_NO(Varchar 16)

Table:FIXTURE
----------------
ID(Integer PK)
TNO(Varchar 4)
DNO(Varchar 12)
<小时/>

在创建实体时,我想创建多对一关系,其中固定装置 No = tNo+dNo (这两个值的串联。)

以下是我的模型的代码示例:

    @Entity
@Table(name="EQUIPMENT", schema="EQP")
public class Equipment {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@NotNull
@Column(unique=true)
private int id;

@NotNull
@ManyToOne
@JoinColumn(name="FIXTURE_NO")
private Fixture fixture;

//getters and setters etc...
}

@Entity
@Table(name="FIXTURE", schema="FIX")
public class Fixture {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@NotNull
@Column(unique=true)
private int id;

@Size(max=4)
@Column(name="TNO")
private String tNo;

@Size(max=12)
@Column(name="DNO")
private String dNo;

//getters and setters etc...
}

现在,我发现 ManyToOne 映射与 EQUIPMENT.FIXTURE_NO 和 FIXTURE.ID 相关,但我找不到将 TNO 和 DNO 的串联与 FIXTURE_NO 映射的方法。

感谢您的帮助!

最佳答案

它不适用于串联,但如果您将数据模型更改为:

Table:EQUIPMENT
----------------
ID (Integer PK)
TNO(Varchar 4)
DNO(Varchar 12)

Table:FIXTURE
----------------
ID(Integer PK)
TNO(Varchar 4)
DNO(Varchar 12)

您可以添加如下关系:

@ManyToOne
@JoinColumns({
@JoinColumn(name="TNO", referencedColumnName="TNO"),
@JoinColumn(name="DNO", referencedColumnName="DNO")
})
private Fixture fixture;

关于java - ManyToOne 关系,其中通过两列的串联引用一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56681206/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com