Как определить, какой объект @InverseRelationShadowVariable назначен моей задаче? Пример: машина на заводе A будет назнаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как определить, какой объект @InverseRelationShadowVariable назначен моей задаче? Пример: машина на заводе A будет назна

Сообщение Anonymous »

Вот мой класс Task. Машина была обратной теневой переменной. После присвоения его значение, например Shifts, будет использоваться для автоматизации StartTime и EndTime в методе автоматизироватьPlanTime.

Код: Выделить всё

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder(toBuilder = true)
@PlanningEntity
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class Task {

@PlanningId
private String id;

// TODO: @CascadingUpdateShadowVariable(targetMethodName = "automateSetMachine") -> is this possible?
@InverseRelationShadowVariable(sourceVariableName = "tasks")
private Machine machine;

@JsonIgnore
@PreviousElementShadowVariable(sourceVariableName = "tasks")
private Task previousTask;
@JsonIgnore
@NextElementShadowVariable(sourceVariableName = "tasks")
private Task nextTask;

@CascadingUpdateShadowVariable(targetMethodName = "automatePlanTime")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
private LocalDateTime startTime;

@CascadingUpdateShadowVariable(targetMethodName = "automatePlanTime")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
private LocalDateTime endTime;

private String building; private String factory;

@JsonIgnore
public void automatePlanTime() {
if (previousTask == null && machine == null) {
startTime = null;
endTime = null;
return;
}
// logic here
}
}

Вот класс Machine. Машина в здании A будет назначена задачам из здания A и B (мои задачи будут принадлежать зданиям A,B,C,D,E,F)

Код: Выделить всё

@PlanningEntity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Machine {

@PlanningId
private String id;

private String factory;
private String building;
private String machineName;

@JsonIgnore
private List shifts;

@JsonIgnore
@PlanningListVariable
private List tasks = new ArrayList();

Мне нужен еще один @CascadingUpdateShadowVariable(targetMethodName = «assignMachine»)
Если я его использую. Повлияет ли это на метод автоматизироватьPlanTime? Раньше при использовании VariableListener for Machine я получал ошибку.
Я не могу протестировать @CascadingUpdateShadowVariable(targetMethodName = "automateSetMachine"). Я обновлю позже после тестирования и, если возможно, поделюсь ошибкой.

Подробнее здесь: https://stackoverflow.com/questions/791 ... to-my-task
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»