所有人!我必须用多对多Map表来表示“市场”和“客户”。hibernate自动创建带有id的表post\u comment表,然后我就可以得到对象和所有的东西了…但是我需要客户在市场上看到什么东西的日期
市场等级
@Entity
@Setter
@Getter
@NoArgsConstructor
public class Market{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@ElementCollection(targetClass = Customer.class, fetch = FetchType.EAGER)
@CollectionTable(name = "market_customer", joinColumns = @JoinColumn(name = "market_id"))
private Set<Customer> banks = new HashSet<>();
............
}
市场等级
@Entity
@Setter
@Getter
@NoArgsConstructor
public class Customer{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
............
}
我可以用ID自动创建marcet\u客户,但我不知道如何添加日期,最重要的是如何通过jpa存储库获取它。。。
2条答案
按热度按时间yzxexxkh1#
这就是hibernate@manytomany的特点——它并不意味着有额外的列,也不意味着可以查询(非常好)。也许您想使用一个单独的实体和一个复合主键:
一篇关于这个的好文章https://vladmihalcea.com/the-best-way-to-map-a-many-to-many-association-with-extra-columns-when-using-jpa-and-hibernate/ . 与https://bootify.io you 也可以在线创建模式(没有复合主键,但是单独的主列也可以)。
qacovj5a2#
与指南多对多链接。https://medium.com/@samuelmumo.sm/spring-数据-jpa-composite-key-mapping-example-750eb54a3d99