gpt4 book ai didi

java - 通过 id 而不是对象添加与实体的关系

转载 作者:太空宇宙 更新时间:2023-11-04 09:27:23 25 4
gpt4 key购买 nike

我正在 Spring 创建一个 Web 应用程序,其中有一些事务和类别。事务与Category 具有ManyToOne 关系。现在我想通过 id 设置类别,而不是通过 Category (作为对象)。

我无法使用 EntityManager 的原因是因为我需要在 EntityListener 中使用它。在我的回答中,我找到了一种 Autowiring 这个 EntityListener 的方法,它解决了我的问题。

这在Spring中可能吗?

我在 StackOverflow 上找到了这个 Hibernate - Add member entity instance by ID ,但我无法在需要的地方使用 EntityManager

这是我的交易实体:

@Entity
@ToString
@Slf4j
@EntityListeners(TransactionListener.class)
@Getter
@Setter
public class Transaction {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column
private long account;
@Column
@JsonFormat(pattern = "dd-MM-yyyy")
private LocalDate date;
@Column
private float amount;
@Column(columnDefinition = "text")
private String description;
@Column(unique = true)
private String hash;
@ManyToOne
@JoinColumn(name = "category_id")
@JsonIgnoreProperties("transactions")
private Category category;
}

这是我的类别实体

@Entity
@ToString
@Getter
@Setter
@EntityListeners(CategoryListener.class)
public class Category {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String name;
@Column
private String color;
@Column
private String[] matchers;
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
@OneToMany(mappedBy = "category")
@JsonIgnoreProperties("category")
private List<Transaction> transactions;
}

最佳答案

我无法 Autowiring EntityManager,因为我需要在实体监听器中使用它,而这些不是 Autowiring 的。我找到了一种方法来自动连接 Injecting a Spring dependency into a JPA EntityListener .

感谢所有帮助过我的人! :)

关于java - 通过 id 而不是对象添加与实体的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57508118/

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