Sasha
Sasha

Reputation: 853

Get only one field from the related table

I have following connection between tables Image:

@Entity
@Table(name = "image")
@Data
public class Image {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private UUID id;
    private byte[] image;
    @OneToOne(mappedBy = "avatar")
    private Personal personal;
}

and Personal

@Entity
@Table(name = "personal")
@Data
public class Personal {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private UUID id;

    @Column(name = "first_name")
    private String firstName;
    @Column(name = "last_name")
    private String lastName;
    private String position;
    private String phone;
    private String email;

    @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinColumn(name = "avatar_id", referencedColumnName = "id")
    private Image avatar;
}

I want to get back from my service Personal entities with ONLY id field from Image table. Repositories and services are standard from tutorials - without extra code or overrides

Upvotes: 0

Views: 42

Answers (1)

Robert Niestroj
Robert Niestroj

Reputation: 16131

If read-only is ok use a DTO or interface projection.

Upvotes: 1

Related Questions