当我进行插入时,在traduction(idMot references mot)中的外键为null,在前面发送正确的外键。我最终出现了这个错误:not-null属性引用了一个空值或临时值:com.virtual.expertise.mydico.model.traduction.mot
我想我在我的模型中做错了什么,但仍然不知道是什么。
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "langue")
private String langue;
@Column(name = "traduction")
private String traduction;
@JsonBackReference(value = "mot-traduction")
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "idMot", nullable = false, insertable = true,
updatable = false)
private Mot mot;
@CreationTimestamp
@Column(name = "dateCreation")
private Date dateCreation;
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "libelle")
private String libelle;
@JsonBackReference(value = "user-mot")
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "idUser", nullable = false, insertable = true, updatable = false)
private User user;
/** les traductions. */
@JsonManagedReference(value = "mot-traduction")
@OneToMany(mappedBy = "mot", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<Traduction> traductions;
@CreationTimestamp
@Column(name = "dateCreation")
private Date dateCreation;
下面是交易表:
DROP TABLE IF EXISTS `traduction`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `traduction` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`langue` varchar(100) DEFAULT NULL,
`traduction` varchar(100) DEFAULT NULL,
`idMot` bigint(20) DEFAULT NULL,
`dateCreation` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idMot_idx` (`idMot`),
CONSTRAINT `idMot` FOREIGN KEY (`idMot`) REFERENCES `mot` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
下面是我的WebService:(其中idMot在traduction中显示为null)
@POST
@Path("/create")
public Traduction createTraduction(Traduction traduction) throws Exception {
return FacadeBackOffice.getInstance().getTraductionService().createTraduction(traduction);
}
也许有人有解决办法?
在多对一映射中也使用级联类型all。
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "langue")
private String langue;
@Column(name = "traduction")
private String traduction;
@JsonBackReference(value = "mot-traduction")
@ManyToOne(fetch = FetchType.EAGER, cascade=CascadeType.ALL)
@JoinColumn(name = "idMot", nullable = false, insertable = true,
updatable = false)
private Mot mot;
@CreationTimestamp
@Column(name = "dateCreation")
private Date dateCreation;
我试图用Hibernate保存一个表。父表与其子表具有一对多关系。父表POJO有其子表POJO的集合。 当我保存父表时,数据也被插入到它的子表中,但它的外键不为NULL。 下面是我的代码:家长: 儿童: Hibernate服务: 我找到了一个解决方案,将我的孩子反向映射到父母,如下所示 但我在想这是否可以避免。我希望还有其他方法,我不需要把我的每个孩子都映射到父母那里。 Kinldy帮助,如果你能
我正在尝试在表a中插入外键(在phpmyadmin中): 将表A添加外键(id_B)引用B(id_B); 但我得到了一个错误: 表A的id_A为主键,表B的id_B为主键。这两个表都使用innoDB作为存储引擎,表A中的id_B列和表B中的id_B列具有相同的类型。 出了什么问题,我该如何解决?
问题内容: 我有两个实体: 我正在尝试通过执行以下操作插入文件(以及随后的标签): 然后,我使用以下命令将文件插入DAO: 在我的日志中,我在“文件”表中看到一个插入,在标签表中看到2个插入,但是,指向我的文件表(file_id)的标签表中的外键为NULL。 我可能做错了什么? 问题答案: 您不是将标签的文件设置为文件,而是将标签的文件设置为文件。请记住,在OOP中,与关系模型相反,您必须设置关系
我需要在同一个表中的某一列中添加外键约束。例如,对于另一个“项目”列,其中的“I”键为“I”,而“u”列的“I”键为“u”。 我更改了我的表并添加了如下约束:ALTER TABLE PROJECT ADD CONSTRAINT FK_DEPENDENCY_PROJECT_ID外键(DEPENDENCY_PROJECT_ID)引用项目(ID); 但是,我的第二个要求是,“dependency\u p
我是PHP和MySQL新手,需要帮助。。。 我似乎不知道如何在数据库的表中自动插入外键。主键作为“id”添加到我的“mem”表中,但我希望将相同的id添加到我的“location”表中的外键中。有人能帮忙吗? 我有两张桌子。。。 “mem table”id、用户名、电子邮件。 “位置表”id、位置、用户id 如何让用户表中的'id'自动插入到这里作为外键? 我使用这个PHP代码插入数据... 当我