Все они содержат идентификаторы пользователя, продукта и налога. каждый из них уникален и создан только в своем собственном сервисе.
Теперь я пытаюсь отобразить данные для всех пользователей, где у них может быть несколько объектов недвижимости, но с каждым объектом недвижимости связан только один налог. . Поэтому я создал все в соответствии с ним.

мои объекты
ПОЛЬЗОВАТЕЛЬ:
public class Users {
@Id
@Column(unique = true, nullable = false)
private String userId;
@Column(nullable = false)
private String password;
@Column(nullable = false)
private String propertyId; // single user can have multiple property
@Column(nullable = false, unique = true)
private String taxId; // single taxID for each propertyId
@Column(nullable = false)
private String name;
private String guardianName;
@Column(nullable = false, unique = true)
private String adhaarCard;
@Column(nullable = false, unique = true)
private String panCard;
@DateTimeFormat(pattern = "MM-dd-yy")
private LocalDate dob;
@Column(nullable = false)
private Integer age;
@Column(nullable = false)
private String address;
@Column(nullable = false)
private String role;
@Transient
private List
properties =new ArrayList();
@Transient
private List taxes =new ArrayList();
}
СОБСТВЕННОСТЬ
public class Property {
private String propertyId; // Unique Property ID (PIN) , will be our primary key for this table
private String userId; // for user_id, whose property it is
private String taxId; // particular tax_id for that specific property
private String ownerName; // Owner's Name
private String contactNumber; // Contact Number
private String address; // Property Address
private String tradeLicenseDetails; // Trade license details if applicable
@Transient
private List taxes =new ArrayList();
и НАЛОГ
public class Tax {
private String taxId; // Primary key for Tax Ledger entry
private String propertyId; // Foreign key from Property service
private String userId; // Foreign key from User service
private double taxAmount; // Amount of tax demanded
private double amountPaid; // Amount paid by the user
private LocalDate paymentDate; // Date when the payment was made
}
Я сделал их уникальными и случайными, а также сделал одинаковые объекты в своем пакете DTO для упрощения взаимодействия.
Теперь в моем UserServiceImpl я пытаюсь чтобы отобразить всю мою информацию о пользователе, касающуюся всей его собственности и налогов, связанных с ней.
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Autowired
private ModelMapper modalMapper;
@Autowired
private Property_Management_Service property_service;
@Autowired
private Tax_Management_Service tax_service;
private Logger logger = LoggerFactory.getLogger(UserService.class);
@Override
public UserDto createUser(UserDto userDto) {
Users users = this.userDtoToUsers(userDto); // modal mapper class for converting User entity to UserDTO entity
Users saveUsers = this.userRepository.save(users);
return this.usersTouserDto(saveUsers);
}
@Override
public List getUser() {
List users = this.userRepository.findAll();
List userDtos = users.stream().map(user -> {
UserDto userDto = this.usersTouserDto(user);
// Fetching properties for this user using property_ID
List
propertyDtos = this.property_service.getPropertyById(user.getPropertyId());
userDto.setPropertiesDto(propertyDtos);
}).collect(Collectors.toList());
// Fetch tax data for each property
List taxDtos = propertyDtos.stream().map(property -> {
return this.tax_service.getTaxById(property.getTaxId());
}).collect(Collectors.toList());
userDto.setTaxesDto(taxDtos); // Set taxes in UserDto
return userDtos;
}
ошибка, которую я получаю в приведенном выше коде: «Отдельные маркеры в этой строке — несоответствие типов: невозможно преобразовать из List в List»
и это связано с
Property_Management_Service
@FeignClient(name = "PROPERTY-DATA-MANAGEMENT")
public interface Property_Management_Service {
// list all property data by property id
@GetMapping("api/property/v1/property/{propertyId}")
ResponseEntity
getPropertyById(@PathVariable String propertyId);
}
и Служба налогового_управления
@FeignClient(name = "TAX-DATA-MANAGEMENT")
public interface Tax_Management_Service {
// list tax record data by tax_id
@GetMapping("api/tax/v1/tax/{taxId}")
ResponseEntity getTaxById(@PathVariable String taxId);
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... to-another