When relationships are created between entities:
- The respective annotated properties are added to the source files of the entity classes, marked
with gutter icons in the editor:
- Links appear in the ER diagram of a persistence unit:
- Nodes are added to the entity view in the Persistence tool window:
IntelliJ IDEA suggests several ways to create relationships between entities:
- By editing the entity classes
- Using drag-and-drop in ER diagrams
- Using the context menu of an entity
- Open the desired entity class for editing.
- Type field declaration for a new relationship. For example,
private Book bookTitle;
- Create getter and setter methods. To do that, press ⌘N, ⌃⏎, ⌘N or ⌃⏎⌃N, ⌃⏎, ⌃N or ⌃⏎⌘N, ⌃⏎, ⌘N or ⌃⏎^ N, ⌥ Insert, ⌃N or ⌃N⌥ Insert,
and select from the suggestion list. For example:
public Book getBookTitle() { return bookTitle; } public void setBookTitle(Book bookTitle){ this.bookTitle = bookTitle; }
- Annotate the field with the desired relationship annotation. For example:
@OneToOneIf the required import is missing, use the suggested quick fix.
- If required, next to the annotation, specify the following parameters:
- Strategy for fetching data from the database
- Cascadable options to be propagated to the associated entities
- Owning entity
- Target entity
- Mapping field
For example:
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, optional = false, mappedBy = "takenBy")
- For creating bidirectional relationships, you have to edit both the owner and the target entity classes.
- Coding assistance is available.
- In the Persistence tool window, right-click the desired persistence unit, and select in the context menu.
- In the diagram, select the source entity and draw a link to the target entity.
- In the Create Relationship dialog box, specify the options for the owner and
the inverse side of a relationship. Note that if you specify options for one side of a relationship only,
it will be created unidirectional.
In particular, specify the following options:
- Relationship name
- Multiplicity
- Owner of a relationship
- Cascading options
- Fetching strategy
Click OK.
- In the Persistence tool window, right-click the desired persistence unit and choose
on the context menu.
You can invoke the same command on the context menu of an entity in the ER diagram.
- In the dialog box that opens, specify the relationship name and type. By default, the entity in question becomes the owner of a relationship. If you want to make it the inverse side, check the Inverse option. Click OK.