我担心以前可能会问过这个问题,但我要么找不到或不理解类似问题的答案。
我有一张这样的表格
@Entity
public class Offerte extends BaseEntity{
@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(name="dossier")
@GeneratedValue(strategy = GenerationType.AUTO)
@NotNull
private Dossier dossier;
这与表格档案有一个OneToOne连接,并且在创建了一个非常复杂的情况后,我希望它自动成为一个档案。
@Entity
public class Dossier extends BaseEntity{
@OneToOne(fetch=FetchType.LAZY, mappedBy="dossier")
@NotNull
private Offerte offerte;
我已尝试使用generationtype auto执行此操作,但我一直坚持违规行为
List of constraint violations:[
ConstraintViolationImpl{interpolatedMessage='may not be null',
是否可以使此关系自动生效?
修改
river提出的java解决方案
@Entity
public class Offerte extends BaseEntity{
@OneToOne(fetch=FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name="dossier")
@NotNull
private Dossier dossier = new Dossier();
给出以下错误
javax.validation.ConstraintViolationException: Validation failed for classes [be.ugent.lca.data.entities.Dossier] during persist time for groups [javax.validation.groups.Default, ]
List of constraint violations:[
ConstraintViolationImpl{interpolatedMessage='may not be null', propertyPath=offerte, rootBeanClass=class be.ugent.lca.data.entities.Dossier, messageTemplate='{javax.validation.constraints.NotNull.message}'}
]
答案 0 :(得分:0)
为了在创建新的Dossier对象时创建offerte - 您应该只需要下载到java解决方案:
public class Dosier {
@OneToOne(cascade = CascadeType.ALL)
@NotNull
private Offerte offerte = new Offerte(....);
}
这将产生以下后果: