2020-06-20

Hibernate JPA @JoinFormula Example

@JoinFormula

The @JoinFormula annotation is used as a replacement for @JoinColumn when the association does not have a dedicated FOREIGN KEY column.

JoinFormula To be used as a replacement for @JoinColumn in most places. The formula has to be a valid SQL fragment.

@JoinFormula mapping

The @JoinFormula annotation is used to customize the join between a child Foreign Key and a parent row Primary Key.

Example : @JoinFormula mapping usage

@Entity(name = "User")
@Table(name = "users")
public static class User {

@Id
private Long id;

private String firstName;

private String lastName;

private String phoneNumber;

@ManyToOne
@JoinFormula( "REGEXP_REPLACE(phoneNumber, '\\+(\\d+)-.*', '\\1')::int" )
private Country country;

//Getters and setters omitted for brevity

}

@Entity(name = "Country")
@Table(name = "countries")
public static class Country {

@Id
private Integer id;

private String name;

//Getters and setters, equals and hashCode methods omitted for brevity

}

No comments:

Post a Comment