Hallo, wie muss in meinem Beispiel der Mapper aussehen. Ich bekomm immer null in den Dtos?
[CODE lang="json" title="mit Mapstruct"]{"id":null,
"firstname":null,
"lastname":null,
"username":null,
"password":null,
"roles":null}[/CODE]
[CODE lang="json" title="ohne Mapstruct"]{
"id": 1,
"firstname": "Hans",
"lastname": "Dampf",
"username": "Avalon",
"password": "1234",
"roles": [
{
"id": 1,
"name": "Administrator"
},
{
"id": 2,
"name": "User"
}
]
}[/CODE]
[CODE lang="java" title="User.java"]
@Entity
@Table(name = "user")
@Getter @Setter
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String firstname;
private String lastname;
private String username;
private String password;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
private Set<Role> roles = new HashSet<>();
}[/CODE]
[CODE lang="java" title="Role.java"]
@Entity
@Table(name = "role")
@Getter @Setter
@AllArgsConstructor
@NoArgsConstructor
public class Role implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@JsonIgnore
@ManyToMany(mappedBy = "roles")
private Set<User> users = new HashSet<User>();
}[/CODE]
[CODE lang="java" title="UserDto.java"]@Getter @Setter
public class UserDto {
private Long id;
private String firstname;
private String lastname;
private String username;
private String password;
private Set<RoleDto> roles;
}[/CODE]
[CODE lang="java" title="RoleDto.java"]@Getter @Setter
public class RoleDto {
private Long id;
private String name;
private Set<UserDto> users;
}[/CODE]
[CODE lang="java" title="IUserMapper.java"]@Mapper(componentModel = "spring")
public interface IUserMapper {
UserDto mapToDto(User user);
}
[/CODE]
[CODE lang="java" title="IRoleMapper.java"]@Mapper(componentModel = "spring")
public interface IRoleMapper {
RoleDto mapToDto(Role role);
}
[/CODE]
[CODE lang="json" title="mit Mapstruct"]{"id":null,
"firstname":null,
"lastname":null,
"username":null,
"password":null,
"roles":null}[/CODE]
[CODE lang="json" title="ohne Mapstruct"]{
"id": 1,
"firstname": "Hans",
"lastname": "Dampf",
"username": "Avalon",
"password": "1234",
"roles": [
{
"id": 1,
"name": "Administrator"
},
{
"id": 2,
"name": "User"
}
]
}[/CODE]
[CODE lang="java" title="User.java"]
@Entity
@Table(name = "user")
@Getter @Setter
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String firstname;
private String lastname;
private String username;
private String password;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
private Set<Role> roles = new HashSet<>();
}[/CODE]
[CODE lang="java" title="Role.java"]
@Entity
@Table(name = "role")
@Getter @Setter
@AllArgsConstructor
@NoArgsConstructor
public class Role implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@JsonIgnore
@ManyToMany(mappedBy = "roles")
private Set<User> users = new HashSet<User>();
}[/CODE]
[CODE lang="java" title="UserDto.java"]@Getter @Setter
public class UserDto {
private Long id;
private String firstname;
private String lastname;
private String username;
private String password;
private Set<RoleDto> roles;
}[/CODE]
[CODE lang="java" title="RoleDto.java"]@Getter @Setter
public class RoleDto {
private Long id;
private String name;
private Set<UserDto> users;
}[/CODE]
[CODE lang="java" title="IUserMapper.java"]@Mapper(componentModel = "spring")
public interface IUserMapper {
UserDto mapToDto(User user);
}
[/CODE]
[CODE lang="java" title="IRoleMapper.java"]@Mapper(componentModel = "spring")
public interface IRoleMapper {
RoleDto mapToDto(Role role);
}
[/CODE]