具有两个属性的JPA映射。是否可以在mappedBy中包含两列(属性)?
比如说,有三个DB表具有两个属性的JPA映射。是否可以在mappedBy中包含两列(属性)?,jpa,spring-data-jpa,mapping,one-to-many,Jpa,Spring Data Jpa,Mapping,One To Many,比如说,有三个DB表 表A以主键作为辅助 表B主键为投标,以及 主键为cId的表C,还有两列是Table_name和Table_key 表C可以有对应于 表A中的一个条目,其table_key=aId和table_name='A' 表B中的一个条目,表_key=bId,表_name='B' @实体 @表(name=“A”) 公共类A实现可序列化{ 私有静态最终长serialVersionUID=1L; @身份证 @列(name=“A_KEY”) 私人援助; @OneToMany(mappedBy
@实体
@表(name=“A”)
公共类A实现可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
@列(name=“A_KEY”)
私人援助;
@OneToMany(mappedBy=??)
名单c;
}
@实体
@表(name=“B”)
公共类B实现可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
@列(name=“B_键”)
私人串投标;
@OneToMany(mappedBy=??)
名单c;
}
@实体
@表(name=“C”)
公共类C实现了可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
@列(name=“C_键”)
私有字符串cId;
@列(name=“TABLE\u KEY”)
私有字符串表密钥;
@列(name=“TABLE_name”)
私有字符串表名;
}
当我从表A或表B查询时,我想获取所有相关的C。
有没有办法定义OneToMany映射来解决这个问题,我想在mappedBy或JoinColumn中使用两个列,然后在那里指定其中一个列的值-例如在表a的上下文中,table_name='A'而table_name='B'用于表B。在定义映射时,列属性值之一是已知的。我肯定不确定它是否有效,但您可以尝试
@OneToMany()@JoinColumns(foreignKey={@JoinColumn(name=“col1”),@JoinColumn(name=“col2”)})公共列表c代码>@Zorglube w.r.t.上述示例中,col2值已知。在A的上下文中,col2='A'是col2='B',在B的上下文中是col2='B'。当我分别在A和B中定义这些映射时,这些值可以被默认吗?你刚才读过关于@OneToMany
JPA
注释吗?是的,没有得到太多,因此将问题发布在这里。
@Entity
@Table(name = "A")
public class A implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@Column(name = "A_KEY")
private String aId;
@OneToMany(mappedBy=?????)
List<C> c;
}
@Entity
@Table(name = "B")
public class B implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@Column(name = "B_KEY")
private String bId;
@OneToMany(mappedBy=?????)
List<C> c;
}
@Entity
@Table(name = "C")
public class C implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@Column(name = "C_KEY")
private String cId;
@Column(name = "TABLE_KEY")
private String tableKey;
@Column(name = "TABLE_NAME")
private String tableName;
}