我是JPA的新手,我正试图让我的实体类正常工作,但我的代码总是给我返回这样的错误:“字段[produtos.marca_idmarca]存在多个可写映射”
这些是我的实体类:
@Entity
public class Marca implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer idMarca;
private String nome;
private Integer idFornecedores;
.
.
.
}
我试图在produtos和Marca之间建立一个单向的多对一的关系(1个Marca对许多produtos):
@Entity
public class produtos implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long idProdutos;
private int codBarras;
private String nome;
private float preco;
private int qtdProduto;
private int idCategoriaProduto;
@ManyToOne
private CategoriaProduto categoria;
private int Marca_idMarca;
@ManyToOne
private Marca marca;
.
.
.
}
错误:
Exception Description: Multiple writable mappings exist for the field [PRODUTOS.MARCA_IDMARCA]. Only one may be defined as writable, all others must be specified read-only.
Mapping: org.eclipse.persistence.mappings.ManyToOneMapping[marca]
Descriptor: RelationalDescriptor(ClassesDeEntidade.produtos --> [DatabaseTable(PRODUTOS)])
如果不存在mydb
则创建表。produtos
(idprodutos
INT NOT NULL AUTO_INCREMENT,codbarras
INT(13)NOT NULL,nome
VARCHAR(150)NULL,preco
FLOAT NULL,qtdproduto
INT NOT NULL,idcategoriaproduto
INT NOT NULL,idcategoriaproduto
marca_idmarcaINT NULL,主键(idprodutos
),索引to1_idx(idcategoriaproduto
ASC),索引fk_produtos_marca1_idx
(marca_idmarca
ASC),约束fk_produtos_categoriaproduto1
外键(idcategoriaproduto
)引用mydb
。categoriaproduto
(idcategoriaproduto
)删除时不执行更新时不执行任何操作,约束fk_produtos_marca1_idx
外键code>)引用mydb
。marca
(idmarca
)删除时不执行更新时不执行操作)引擎=innoDB;
马卡报:
如果不存在mydb
则创建表。marca
(idmarca
INT NOT NULL AUTO_INCREMENT,nome
VARCHAR(45)NOT NULL,idfornecedores
INT NOT NULL,主键(idmarca
)、索引fk_marca_fornecedores1_idx
(idfornecedores
ASC)、约束fk_marca_fornecedores1
外键(idfornecedores
)引用mydb
。dores
(idFornecedores
)删除时无操作更新时无操作)引擎=innoDB;
你能显示你的表定义吗?问题似乎是,您有两个字段(可能是Marca
,它具有@ManyToOne
注释,以及int marca_idmarca
,它具有相同的名称)映射到数据库中相同的produto.id_marca
列。
我知道我应该把这个作为一个评论,但我还不能评论。
我读了很多问题,但还没有找到答案。 我有两个不同的表WeatherData: @实体公共类WeatherData实现可序列化{ 有人有主意吗? 谢谢
模型(Model)之间存在各种各样的关系,如:一对一(One-To-One )、一对多(One-To-Many)等。模型间的关系本质上是对其代表的数据库中表之间的关系描述,通过这些关系可以实现数据库中表之间主/外键约束的创建。查询时也可以基于这些关系,生成在数据库中执行的连接查询或复合查询SQL语句。 关系/关联的使用 1.1 一对一(One-To-One)关联 1.2 一对多(One-To-Ma
感谢(在Spring中使用@Valid vs@Validated)以及在Spring中使用@Valid和@Validated之间的差异。我现在明白他们之间的区别了。 然而,我无法理解特定的场景。 我在控制器endpoint中接收到一个整数,我想使用JSR-303进行验证(我只会使用最小值(1)),以确保得到一个整数 困惑-在我将放在控制器类上,尝试后,设置才起作用,但没有起作用。只是想弄明白为什么
我正在为我的项目使用Spring Data JPA(以hibernate作为提供程序),并想知道何时需要实体之间的双向映射? 在我的用例中,我有一个实体,与实体具有关系。目前,我在实体中没有相应的关系。从我所能理解的查看其他帖子,除非我需要通过我的实体/Hibernate删除,否则我可能不需要这样做。我想知道通过双向关系我还能得到什么? 这是我的,不包括访问者: 这是,不包括访问器: 如果我一直在
问题内容: 我的问题是,例如,当我创建一个表时:以下几列: 哪里是用。 然后以列为例: 凡是与外键是从。 应该是说我已经建立的关系和使用。 这两个表最初都是空的,因此我编写了以下SQL命令: 这很好用,但是当我尝试插入子表()时,它告诉我: 错误外键约束 所以基本上我想要做的是插入到父表,然后到子表,以便显示出来的(子表)的外键,相当于用在(父表)。 我必须先创建两个表,而无需使用外键,然后再尝试
如何为这种多对多关系分配默认值?制作两个关联表->一个用于收件箱-关系,另一个用于发件箱-关系会更好吗?我该如何做到这一点?这个问题的其他解决方案? 任何帮助都非常感谢--非常感谢!