小编Sha*_*iby的帖子

如何修复被忽略的嵌入式对象中的验证约束?

我在 Spring Boot 和 Hibernate REST API 中有我的实体对象。这个类有很多字段。其中一部分是嵌入式的,并且诸如 @Min @Max 之类的验证约束不适用于 @Embeddable 类中的字段。相同的验证规则在 @Entity 类中完美运行。我正在使用 javax.validation.constraints.Max

我的主要对象是这样的:

@Entity
public class Notice extends BaseEntity {

  @Embedded
  private MyEmbeddedClass myEmbeddedClass;

  @OneToOne(cascade = CascadeType.ALL)
  @JoinColumn(name = "entity_class_id")
  private MyEntityClass myEntityClass;

}   
Run Code Online (Sandbox Code Playgroud)

还有我的@embedded 课程:

@Embeddable
public class MyEmbeddedClass {

  @Size(max = 50)
  private String label;

  @Max(100)
  private Integer percent;
Run Code Online (Sandbox Code Playgroud)

}

百分比字段上的@Max 约束被忽略,但@size 工作正常

@Entity
public class MyEntityClass extends BaseEntity {

  @Size(max = 50)
  private String name;

  @Max(6000)
  private Integer size;
Run Code Online (Sandbox Code Playgroud)

}

在这里创建了对字段大小的 @Max 约束和 …

java hibernate jpa bean-validation

5
推荐指数
1
解决办法
1022
查看次数

角度材质 displayWith 不适用于 ngx-translate

我在 mat-autocomplete 中使用 [displayWith] 指令。当我手动选择值时它工作正常,但当我重新加载页面时我没有得到翻译。翻译所需的参数是从 ngOnInit 中的查询参数异步加载的。所以我依赖异步参数,但我的 displayFunction() 是同步函数。怎么解决呢?

如果没有 [displayWith] 功能,一切正常,但没有翻译(它只是显示我不想要的纯值)。所以我确信其余代码是正确的。

我的垫子自动完成:

<mat-form-field [formGroup]="cityForm"
                appearance="outline"
                floatLabel="never"
                color="primary">
  <mat-icon matPrefix>location_on</mat-icon>
  <input type="text" placeholder="{{ 'job_offer_search_bar.job-offer-search-bar-city-form.placeholder' | translate }}"
         aria-label="Number" matInput
         formControlName="cityControl" [matAutocomplete]="auto">
  <mat-autocomplete #auto="matAutocomplete" (optionSelected)="onSelectionChanged($event.option.value)"
                    [displayWith]="displayFn.bind(this)">
    <mat-option>
      {{ 'job_offer_search_bar.job-offer-search-bar-city-form.all' | translate }}
    </mat-option>
    <mat-option *ngFor="let city of filtredCities | async" [value]="city">
      {{ 'job_offer_search_bar.job-offer-search-bar-city-form.city' | translate:"{ city: '" + city +"' }"}}
    </mat-option>
  </mat-autocomplete>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)

我的 displayWith 函数如下:

displayFn(val: string){
    if (!val) return '';
    let stringToReturn;
    this.translate.get('job_offer_search_bar.job-offer-search-bar-city-form.city', {city: val}).subscribe(value => {
      console.log('inside …
Run Code Online (Sandbox Code Playgroud)

javascript rxjs typescript ngx-translate angular

5
推荐指数
1
解决办法
1645
查看次数