【发布时间】:2018-07-06 01:00:35
【问题描述】:
场景:
- 我有一个包含以下字段的产品表:id、代码、描述、照片。
- 我有一个来自其他模式的 product_stock 视图,其中包含以下字段:prod_code、stok_tot
Misson:我需要在Spring Boot 中做的是将产品的总库存加入其中。
规则:
- 我不能在这个任务上使用
@Query,我需要在产品Entity Class中加入他们,这样stock就变成了某种瞬态 产品领域。 - 我无法更改产品 ID 是
Long并且 ProductStock 的 ID 是String的事实,但我可以使用产品的代码字段来代替,对吗? (怎么做?)
到目前为止...我尝试使用@OneToOne 和@JoinColumn 来完成这项工作,但我的REST 给我的股票字段为NULL。
“Estoque.java”
@Entity
@Table(name = "VW_ESTOQUE", schema = "ASICAT")
public class Estoque {
@Id
@Column(name = "CD_BEM_SERVICO", unique = true, nullable = false)
private String codigo;
@Column(name = "ESTOQUE")
private Long estoque;
// getters and setters hidden by me
}
“Produto.java”
@Entity
@NamedEntityGraph(name = "Produto.detail", attributeNodes = @NamedAttributeNode("categorias"))
public class Produto implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
private Long id;
private String codigo;
private String descricao;
// here is where I get the null values
@Transient
@OneToOne(fetch = FetchType.LAZY)
@JoinTable(name = "VW_ESTOQUE", joinColumns = @JoinColumn(name = "CODIGO", referencedColumnName = "CODIGO"), inverseJoinColumns = @JoinColumn(name = "CD_BEM_SERVICO", referencedColumnName = "CODIGO"))
private Estoque estoque;
private String hash;
@ManyToMany(mappedBy = "produtos", fetch = FetchType.EAGER)
@BatchSize(size = 10)
private List<Categoria> categorias = new ArrayList<>();
// getters and setters hidden by me
}
在我的产品存储库中,我调用 FindAll()
【问题讨论】:
标签: java oracle hibernate jpa spring-data