Anonymous
Javax.validation.ConstraintViolationException, ConstraintViolationImpl {interpolatedMessage = 'может быть не нулевым', p
Сообщение
Anonymous » 07 май 2026, 07:03
Я пытаюсь сохранить объект класса DocumentType с помощью Hibernate.
На стороне клиента (с использованием Angular js) я передаю поле
workflow следующим образом (я могу передать только идентификатор объекта
workflow ):
При сохранении объекта я получаю:
Код: Выделить всё
javax.validation.ConstraintViolationException, ConstraintViolationImpl{interpolatedMessage='may not be null', propertyPath=workflow
Тип документа класса:
Код: Выделить всё
@Entity
@Table(name = "${subsystem.table.prefix}_ref_document_type")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@JsonIgnoreProperties({"new", "workflow", "docClass", "parentTypes", "cacheNames"})
@AttributeOverride(
name = "rowId",
column = @Column(name = "uniqueid", insertable = false, updatable = false)
)
public class DocumentType extends AbstractPeriodCodeReference {
public static final String CACHE_NAME = "documentTypes";
@Override
public String[] getCacheNames() {
return new String[]{CACHE_NAME};
}
@Getter
@Setter
@NotBlank
@Column(nullable = false, length = 512)
private String name;
@Getter
@Setter
@NotBlank
@Column(nullable = false)
private String shortName;
@Getter
@Setter
@NotNull
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "subtype_id", nullable = false)
private DocumentSubtype subtype;
@Getter
@Setter
@NotNull
@Type(
type = HibernateIntegerEnumType.CLASS_NAME,
parameters = @Parameter(name = HibernateIntegerEnumType.PARAMETER_NAME, value = TypeDocumentEnum.ENUM_CLASS)
)
@Column(nullable = false, name = "in_out", columnDefinition = "number(1,0)")
private TypeDocumentEnum inout;
@Getter
@Setter
@NotNull
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "workflow_id", nullable = false)
private Workflow workflow;
@Getter
@Setter
@Column(nullable = false)
private boolean docflowable;
@Getter
@Column(nullable = false)
private boolean creatable;
@Getter
@ManyToOne(optional = true, cascade = CascadeType.ALL)
@JoinColumn(name = "docflow_code", nullable = true)
private DocflowType docflowType;
@Getter
@OneToMany(mappedBy = "type", fetch = FetchType.LAZY)
private Set parentTypes = Sets.newHashSet();
@Getter
@Formula("'(' || code || ') ' || name")
private String fullName;
@Getter
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
name = "core_ref_doc_signer_type",
joinColumns = @JoinColumn(name = "doc_code"),
inverseJoinColumns = @JoinColumn(name = "type_id")
)
private Set signerTypes = Sets.newHashSet();
@Getter
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
name = "core_ref_subsystem_doc_type",
joinColumns = @JoinColumn(name = "doc_code"),
inverseJoinColumns = @JoinColumn(name = "subsystem_id")
)
private Set subsystems = Sets.newHashSet();
public DocumentType(String code) {
Validate.notBlank(code);
this.setCode(code);
}
}
Рабочий процесс класса:
Код: Выделить всё
@Entity
@Table(name = "core_workflow")
@Immutable
@Getter
public class Workflow extends AbstractSortableEntity {
@NotBlank
@Column(nullable = false)
private String name;
@NotEmpty
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
name = "${subsystem.table.prefix}_initial_workflow_status",
joinColumns = @JoinColumn(name = "workflow_id", nullable = false),
inverseJoinColumns = @JoinColumn(name = "status_id", nullable = false)
)
private Set initialStatuses;
@OneToMany(mappedBy = "pk.workflow", fetch = FetchType.LAZY)
private Set transitions;
}
Что я делаю не так?
1778126600
Anonymous
Я пытаюсь сохранить объект класса DocumentType с помощью Hibernate. На стороне клиента (с использованием Angular js) я передаю поле [b]workflow[/b] следующим образом (я могу передать только идентификатор объекта [b]workflow[/b]): [code] [/code] При сохранении объекта я получаю: [code] javax.validation.ConstraintViolationException, ConstraintViolationImpl{interpolatedMessage='may not be null', propertyPath=workflow [/code] Тип документа класса: [code]@Entity @Table(name = "${subsystem.table.prefix}_ref_document_type") @NoArgsConstructor(access = AccessLevel.PROTECTED) @JsonIgnoreProperties({"new", "workflow", "docClass", "parentTypes", "cacheNames"}) @AttributeOverride( name = "rowId", column = @Column(name = "uniqueid", insertable = false, updatable = false) ) public class DocumentType extends AbstractPeriodCodeReference { public static final String CACHE_NAME = "documentTypes"; @Override public String[] getCacheNames() { return new String[]{CACHE_NAME}; } @Getter @Setter @NotBlank @Column(nullable = false, length = 512) private String name; @Getter @Setter @NotBlank @Column(nullable = false) private String shortName; @Getter @Setter @NotNull @ManyToOne(fetch = FetchType.LAZY, optional = false) @JoinColumn(name = "subtype_id", nullable = false) private DocumentSubtype subtype; @Getter @Setter @NotNull @Type( type = HibernateIntegerEnumType.CLASS_NAME, parameters = @Parameter(name = HibernateIntegerEnumType.PARAMETER_NAME, value = TypeDocumentEnum.ENUM_CLASS) ) @Column(nullable = false, name = "in_out", columnDefinition = "number(1,0)") private TypeDocumentEnum inout; @Getter @Setter @NotNull @ManyToOne(fetch = FetchType.LAZY, optional = false) @JoinColumn(name = "workflow_id", nullable = false) private Workflow workflow; @Getter @Setter @Column(nullable = false) private boolean docflowable; @Getter @Column(nullable = false) private boolean creatable; @Getter @ManyToOne(optional = true, cascade = CascadeType.ALL) @JoinColumn(name = "docflow_code", nullable = true) private DocflowType docflowType; @Getter @OneToMany(mappedBy = "type", fetch = FetchType.LAZY) private Set parentTypes = Sets.newHashSet(); @Getter @Formula("'(' || code || ') ' || name") private String fullName; @Getter @ManyToMany(fetch = FetchType.LAZY) @JoinTable( name = "core_ref_doc_signer_type", joinColumns = @JoinColumn(name = "doc_code"), inverseJoinColumns = @JoinColumn(name = "type_id") ) private Set signerTypes = Sets.newHashSet(); @Getter @ManyToMany(fetch = FetchType.LAZY) @JoinTable( name = "core_ref_subsystem_doc_type", joinColumns = @JoinColumn(name = "doc_code"), inverseJoinColumns = @JoinColumn(name = "subsystem_id") ) private Set subsystems = Sets.newHashSet(); public DocumentType(String code) { Validate.notBlank(code); this.setCode(code); } } [/code] Рабочий процесс класса: [code]@Entity @Table(name = "core_workflow") @Immutable @Getter public class Workflow extends AbstractSortableEntity { @NotBlank @Column(nullable = false) private String name; @NotEmpty @ManyToMany(fetch = FetchType.LAZY) @JoinTable( name = "${subsystem.table.prefix}_initial_workflow_status", joinColumns = @JoinColumn(name = "workflow_id", nullable = false), inverseJoinColumns = @JoinColumn(name = "status_id", nullable = false) ) private Set initialStatuses; @OneToMany(mappedBy = "pk.workflow", fetch = FetchType.LAZY) private Set transitions; } [/code] Что я делаю не так?