Код: Выделить всё
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));
}
}
Я пробовал переименовывать объекты и таблицы, но это не помогло. проблема.
Раньше у меня была одна структура таблицы для активов. Я понял, что одна таблица может повлиять на производительность по мере роста базы данных, поэтому я решил разделить типы ресурсов на отдельные таблицы, такие как автомобиль, power_tool и генератор. На данный момент у меня есть только тип транспортного средства.
Подробнее здесь: https://stackoverflow.com/questions/791 ... eexception
Мобильная версия