Hibernate JPA @Persister Example
The @Persister annotation is used to specify a custom entity or collection persister.
For entities, the custom persister must implement the EntityPersister interface.
For collections, the custom persister must implement the CollectionPersister interface.
For entities, the custom persister must implement the EntityPersister interface.
For collections, the custom persister must implement the CollectionPersister interface.
@Persister( impl = EntityPersister.class )
public class Author {
@Id
public Integer id;
@OneToMany( mappedBy = "author" )
@Persister( impl = CollectionPersister.class )
public Set<Book> books = new HashSet<>();
//Getters and setters omitted for brevity
public void addBook(Book book) {
this.books.add( book );
book.setAuthor( this );
}
}
@Entity
@Persister( impl = EntityPersister.class )
public class Book {
@Id
public Integer id;
private String title;
@ManyToOne(fetch = FetchType.LAZY)
public Author author;
//Getters and setters omitted for brevity
}
By providing your own EntityPersister and CollectionPersister implementations, you can control how entities and collections are persisted into the database.
For entities, the custom persister must implement the EntityPersister interface.
For collections, the custom persister must implement the CollectionPersister interface.
Define a custom entity persister
The @Persister annotation is used to specify a custom entity or collection persister.For entities, the custom persister must implement the EntityPersister interface.
For collections, the custom persister must implement the CollectionPersister interface.
Example : Entity persister mapping
@Entity@Persister( impl = EntityPersister.class )
public class Author {
@Id
public Integer id;
@OneToMany( mappedBy = "author" )
@Persister( impl = CollectionPersister.class )
public Set<Book> books = new HashSet<>();
//Getters and setters omitted for brevity
public void addBook(Book book) {
this.books.add( book );
book.setAuthor( this );
}
}
@Entity
@Persister( impl = EntityPersister.class )
public class Book {
@Id
public Integer id;
private String title;
@ManyToOne(fetch = FetchType.LAZY)
public Author author;
//Getters and setters omitted for brevity
}
By providing your own EntityPersister and CollectionPersister implementations, you can control how entities and collections are persisted into the database.
Comments
Post a Comment