【发布时间】:2020-02-07 14:45:56
【问题描述】:
我正在尝试将下表映射到 JPA。 user_tax 和 tax 与 user_tax 和 user 之间的关系是一对多。我有一个复合主键,我需要将外键映射到这两个键,这让我感到困惑。
错误信息:org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: entity.Tax.user_tax in entity.UserTax.taxs
tax user_tax user
-------- -------- ------
PK|t_id |--------| t_id |PK-FK |u_name|
|t_name| PK-FK| u_id |-------|u_id | PK
| | | name | | |
这是我的实体:
@Entity
@Table(name = "user")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name="u_name")
private String uname;
getters + setters
}
@Entity
@Table(name = "tax")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Tax implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "t_name")
private String tname;
@Embeddable
public class UserTaxId implements Serializable {
@Column(name="u_id")
private Long uId;
@Column(name="t_id")
private Long tId;
@Entity
@Table(name = "user_tax")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class UserTax implements Serializable {
@EmbeddedId
private UserTaxId userTaxId;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user_tax")
private List<User> users;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user_tax")
private List<Tax> taxs;
【问题讨论】:
标签: spring jpa foreign-keys one-to-many composite-key