@Entity(name = "Via1Entity") @FetchProfile(name = FETCH_PROFILE_NAME, fetchOverrides = { @FetchProfile.FetchOverride(entity = Via1.class, association = "mid", mode = FetchMode.JOIN) }) public static class Via1 { @Id @GeneratedValue private long id; @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) private Mid mid; public Via1() { } public Via1(Mid mid) { this.mid = mid; } public long getId() { return id; } public void setId(long id) { this.id = id; } public Mid getMid() { return mid; } public void setMid(Mid mid) { this.mid = mid; } }
@Entity(name = "MidEntity") @FetchProfile(name = FETCH_PROFILE_NAME, fetchOverrides = { @FetchProfile.FetchOverride(entity = Mid.class, association = "finish", mode = FetchMode.JOIN) }) public static class Mid { @Id @GeneratedValue private long id; @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) private Finish finish; public Mid() { } public Mid(Finish finish) { this.finish = finish; } public long getId() { return id; } public void setId(long id) { this.id = id; } public Finish getFinish() { return finish; } public void setFinish(Finish finish) { this.finish = finish; } }
@Entity(name = "Via2Entity") @FetchProfile(name = FETCH_PROFILE_NAME, fetchOverrides = { @FetchProfile.FetchOverride(entity = Via2.class, association = "mid", mode = FetchMode.JOIN) })
@FetchProfile(name = "orders-profile", fetchOverrides = { @FetchProfile.FetchOverride(entity = Customer5.class, association = "foo", mode = FetchMode.JOIN) })
@FetchProfile(name = "customer-with-orders", fetchOverrides = { @FetchProfile.FetchOverride(entity = Customer2.class, association = "foo", mode = FetchMode.JOIN) })
@FetchProfile(name = "unsupported-fetch-mode", fetchOverrides = { @FetchProfile.FetchOverride(entity = Customer4.class, association = "orders", mode = FetchMode.SELECT) })
@FetchProfile(name = "wrong-class-name", fetchOverrides = { @FetchProfile.FetchOverride(entity = Order.class, association = "orders", mode = FetchMode.JOIN) })
@Entity(name = "StartEntity") @FetchProfile(name = FETCH_PROFILE_NAME, fetchOverrides = { @FetchProfile.FetchOverride(entity = Start.class, association = "via1", mode = FetchMode.JOIN), @FetchProfile.FetchOverride(entity = Start.class, association = "via2", mode = FetchMode.JOIN)
@Entity(name = "Employee") @FetchProfile( name = "employee.projects", fetchOverrides = { @FetchProfile.FetchOverride( entity = Employee.class, association = "projects", mode = FetchMode.JOIN ) } ) //end::fetching-strategies-dynamic-fetching-profile-mapping-example[] public static class Employee { @Id private Long id; @NaturalId private String username; @Column(name = "pswd") @ColumnTransformer( read = "decrypt( 'AES', '00', pswd )", write = "encrypt('AES', '00', ?)" ) private String password; private int accessLevel; @ManyToOne(fetch = FetchType.LAZY) private Department department; @ManyToMany(mappedBy = "employees") private List<Project> projects = new ArrayList<>(); //Getters and setters omitted for brevity }