1
當保存一個實體時,(這個問題只發生在保存時,即時通訊說,因爲我可以在findAll時執行正常操作)Im有點問題休眠 - @IdClass @ManyToOne - 主鍵也是外鍵
正如我所說的,節省了實體(repository.save(實體))時,即時得到後續例外
//org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.lang.Integer' to required type 'net.lapasta.model.entity.Produto' for property 'produto';
//nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.Integer] to required type [net.lapasta.model.entity.Produto] for property 'produto': no matching editors or conversion strategy found
我的實體是:
@Entity
@IdClass(ProdutoEstoqueRegra.PrimaryKey.class)
@Table(name = "PRODUTO_ESTOQUE_REGRA")
public class ProdutoEstoqueRegra extends BaseEntity
{
private static final long serialVersionUID = 2977957269715314234L;
public static class PrimaryKey extends BaseEntity
{
private static final long serialVersionUID = 5136771432344094321L;
private Produto produto;
private Produto produtoEstoque;
public PrimaryKey()
{
}
public PrimaryKey(Produto produto, Produto produtoEstoque)
{
this.produto = produto;
this.produtoEstoque = produtoEstoque;
}
public Produto getProduto()
{
return produto;
}
public void setProduto(Produto produto)
{
this.produto = produto;
}
public Produto getProdutoEstoque()
{
return produtoEstoque;
}
public void setProdutoEstoque(Produto produtoEstoque)
{
this.produtoEstoque = produtoEstoque;
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result += prime * result + (produto == null ? 0 : produto.getProdutoId() == null ? 0 : produto.getProdutoId().hashCode());
result += prime * result + (produtoEstoque == null ? 0 : produtoEstoque.getProdutoId() == null ? 0 : produtoEstoque.getProdutoId().hashCode());
return result;
}
@Override
public boolean equals(Object object)
{
if(this == object)
{
return true;
}
if(!(object instanceof ProdutoEstoqueRegra))
{
return false;
}
ProdutoEstoqueRegra produtoEstoqueRegra = (ProdutoEstoqueRegra) object;
if(produto == null)
{
if(produtoEstoqueRegra.getProduto() != null)
{
return false;
}
}
else if(produto.getProdutoId() == null)
{
if(produtoEstoqueRegra.getProduto().getProdutoId() != null)
{
return false;
}
}
else if(!produto.equals(produtoEstoqueRegra.getProduto()))
{
return false;
}
if(produtoEstoque == null)
{
if(produtoEstoqueRegra.getProdutoEstoque() != null)
{
return false;
}
}
else if(produtoEstoque.getProdutoId() == null)
{
if(produtoEstoqueRegra.getProdutoEstoque().getProdutoId() != null)
{
return false;
}
}
else if(!produtoEstoque.getProdutoId().equals(produtoEstoqueRegra.getProdutoEstoque().getProdutoId()))
{
return false;
}
return true;
}
}
@Id
@ManyToOne
@JoinColumn(name = "ID_PRODUTO")
private Produto produto;
@Id
@ManyToOne
@JoinColumn(name = "ID_PRODUTO_ESTOQUE")
private Produto produtoEstoque;
@Column(name = "QUANTIDADE")
private BigDecimal quantidade;
}
嘗試使用ProdutoRepository, 保存它,你可以從這裏HTTP見例如: //stackoverflow.com/questions/39185977/failed-to-convert-request-element-in-entity-with-idclass/42592560#42592560 – 2017-03-04 06:01:53