Что вызывает исключение PropertyReferenceExceptionJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Что вызывает исключение PropertyReferenceException

Сообщение Anonymous »

Я получаю сообщение об ошибке ниже и не могу понять, в чем причина проблемы.

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

2024-10-19T11:26:28.546+05:30  WARN 9455 --- [rentsysapi] [nio-8080-exec-2] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.data.mapping.PropertyReferenceException: No property 'asset' found for type 'AssetVehicle']
Объект «Актив Транспортное средство»:

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

@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Entity
@Table(name = "asset_vehicle", schema = "public")
@EntityListeners(AuditingEntityListener.class)
@Audited
public class AssetVehicle extends BaseExpireEntity {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
@UuidGenerator
@Column(updatable = false, nullable = false, columnDefinition = "UUID")
private UUID assetVehicleId;

@Enumerated(value = EnumType.STRING)
@Column(nullable = false)
private AssetStatus status = AssetStatus.AVAILABLE;

private String vehicleNumber;
private String vin;
private String enginNumber;
private String chassisNumber;
private String color;

/// Year of manufacture
private Integer yom;

/// Year of registration
private Integer yor;

@Column(columnDefinition = "TEXT")
private String remark;

@Column(nullable = false, updatable = false)
private UUID primaryBranchId;

//region relationships
@ManyToOne
@JoinColumn(name = "company_id", nullable = false, updatable = false)
private Company company;

@ManyToOne
@JoinColumn(name = "owner_id")
private UserEntity owner;

@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "vehicle_id", nullable = false)
private Vehicle vehicle;

@OneToMany(mappedBy = "assetVehicle", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
private Set media = new HashSet();

@OneToMany(mappedBy = "assetVehicle", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
private Set documents = new HashSet();

@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
name = "asset_vehicle_branch",
joinColumns = @JoinColumn(name = "asset_vehicle_id"),
inverseJoinColumns = @JoinColumn(name = "branch_id")
)
private Set
branches = new HashSet();
//endregion
}

Хранилище транспортных средств:

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

@Repository
public interface AssetVehicleRepository extends JpaRepository, JpaSpecificationExecutor {

Boolean existsByCompanyAndVehicleNumber(Company company, String vehicleNumber);

Optional getByVehicleNumber(String vehicleNumber);
}
Обслуживание транспортных средств:

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

@Service
public class AssetVehicleServiceImpl implements AssetVehicleService {
@Autowired
CompanyService companyService;

@Autowired
AssetVehicleRepository assetVehicleRepository;
@Autowired
ModelMapper modelMapper;

@Override
public Boolean existsByCompanyVehicleNumber(UUID companyId, String vehicleNumber) {
Company company = companyService.findById(companyId);
return assetVehicleRepository.existsByCompanyAndVehicleNumber(company, vehicleNumber);
}

@Override
public AssetVehicle getByVehicleNumber(String vehicleNumber) {
return assetVehicleRepository.getByVehicleNumber(vehicleNumber)
.orElseThrow(() -> new NotFoundException("Vehicle not found with vehicle number: " + vehicleNumber));
}

@Override
public AssetVehicleDto getByVehicleNumberDtoDto(String vehicleNumber) {
return modelMapper.map(getByVehicleNumber(vehicleNumber), AssetVehicleDto.class);
}

@Override
public Page getAllAssets(Pageable pageable, AssetStatus status, UUID companyId, UUID ownerId) {
Specification  specification = Specification.where(AssetVehicleSpecification.hasStatus(status))
.and(AssetVehicleSpecification.hasCompany(companyId))
.and(AssetVehicleSpecification.hasOwner(ownerId));

return assetVehicleRepository.findAll(specification, pageable);
}

@Override
public Page getAllAssetsDto(Pageable pageable, AssetStatus status, UUID companyId, UUID ownerId) {
Page assets = getAllAssets(pageable, status, companyId, ownerId);
return assets.map(asset -> modelMapper.map(asset, AssetVehicleDto.class));
}
}
Я новичок в разработке Spring Boot, имею опыт разработки мобильных приложений (Android, iOS, Flutter). Я боролся с этой проблемой около двух дней и пока не нашел решения.
Я пробовал переименовывать объекты и таблицы, но это не помогло. проблема.
Раньше у меня была одна структура таблицы для активов. Я понял, что одна таблица может повлиять на производительность по мере роста базы данных, поэтому я решил разделить типы ресурсов на отдельные таблицы, такие как автомобиль, power_tool и генератор. На данный момент у меня есть только тип транспортного средства.

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

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

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

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

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

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