在某些情况下,我需要在计算机硬件部件之间创建兼容性映射。
例如,要检查ComputerPart1(motherboard_yy)是否与ComputerPart1(hardrive_xx)兼容
所以我有一个名为ComputerPart的实体
@Entity
public class ComputerPart {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false)
private String name;
@Column(nullable = false, unique = true)
private String serialNumber;
@Column(nullable = false)
private String manufacturer;
// getter and setters
我不确定下一步的最佳方法。
我是否使用列表创建computerParts的对象图?
Map<ComputerPart, List<ComputerPart>>
还是我要创建另一个称为兼容实体?
我可能会选择的解决方案是使用相同实体类型的列表:
@Entity
public class ComputerPart {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false)
private String name;
@Column(nullable = false, unique = true)
private String serialNumber;
@Column(nullable = false)
private String manufacturer;
@Column(nullable = false)
private String manufacturer;
// What @Annotation to put here?
//is it @ManyToMany ?
Set<ComputerPart> compatibles;
我不确定Annotation参数。
@ManyToMany(targetEntity = ComputerPart.class, fetch = FetchType.LAZY)
@JoinTable(name = "??", joinColumns = {
@JoinColumn(name = "??", referencedColumnName = "??")},
inverseJoinColumns = {
@JoinColumn(name = "??", referencedColumnName = "??")})