@Entity @Table(name = "vets") public class Vet extends Person { @ManyToMany(fetch = FetchType.EAGER) @JoinTable(name = "vet_specialties", joinColumns = @JoinColumn(name = "vet_id"), inverseJoinColumns = @JoinColumn(name = "specialty_id")) private Set<Specialty> specialties;
@Entity(name = "Project") public class Project { @Id private Long id; @ManyToMany private List<Employee> employees = new ArrayList<>(); //Getters and setters omitted for brevity } }
@ManyToMany @JoinTable(joinColumns = @JoinColumn(referencedColumnName = "address"), inverseJoinColumns = @JoinColumn(referencedColumnName = "name") ) public Set<Inhabitant> getHasInhabitants() { return hasInhabitants; }
@Entity @Table(name = "APP_ROLE") @Audited public class Role extends RightsSubject { private String name; @ManyToMany private Set<RightsSubject> members = new HashSet<RightsSubject>();
@ManyToMany( cascade = CascadeType.ALL ) @JoinTable( name = "CHARACTER_ALIAS", indexes = @Index( columnList = "characters_id")) // @JoinTable( // name = "CHARACTER_ALIAS", // joinColumns = @JoinColumn(name="ALIAS_ID", referencedColumnName="ID"), // inverseJoinColumns = @JoinColumn(name="CHARACTER_ID", referencedColumnName="ID") // ) public List<Character> getCharacters() { return characters; }
@Entity(name = "TestEntity") @Table(name = "`testentity`", catalog = "hibernate_orm_test_collation", schema = "dbo") public static class LowercaseTableNameEntity { @Id long id; String field1; @ManyToMany(mappedBy = "entities") Set<TestEntity> entity1s; }
@Entity(name = "Project") public class Project { @Id private Long id; @ManyToMany private List<Employee> employees = new ArrayList<>(); //Getters and setters omitted for brevity } //end::fetching-strategies-domain-model-example[]
@Entity(name = "User") @Table(name = "`User`") @FilterDef(name = "activeUserFilter", defaultCondition = "active = true") @Filter(name = "activeUserFilter") private String name; private Boolean active; @ManyToMany @Fetch(FetchMode.JOIN) @Filter(name = "activeRoleFilter")
@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}) @JoinTable( name = "StoreSupplier", joinColumns = @JoinColumn(name = "store"), inverseJoinColumns = @JoinColumn(name = "supplier") ) public Set<Supplier> getSuppliers() { return suppliers; }
@Entity @Table( name = "BAR" ) private static class Bar { @Id @GeneratedValue Long id; @ManyToMany( fetch = FetchType.LAZY, targetEntity = Foo.class ) Set<Foo> foos = new HashSet<>(); }
@Entity(name = "EntityWithCollection") public static class EntityWithCollection { @Id @GeneratedValue private Long id; @ManyToMany private Set<ElementOfCollection> collection; }
@ManyToMany( cascade = {CascadeType.PERSIST, CascadeType.MERGE} ) @JoinTable( name = "FRIEND2FRIEND", joinColumns = {@JoinColumn(name = "FROM_FR", nullable = false)}, inverseJoinColumns = {@JoinColumn(name = "TO_FR", nullable = false)} ) public Set<Friend> getFriends() { return friends; }
@Entity( name = "Post" ) @Table( name = "POST" ) private static class Post { @Id @GeneratedValue Long id; @ManyToMany( cascade = CascadeType.ALL ) Set<Tag> tags; @OneToOne( fetch = FetchType.LAZY, mappedBy = "post", cascade = CascadeType.ALL ) AdditionalDetails additionalDetails; }
@Entity(name = "EntityWithCollection2") public static class EntityWithCollection2 { @Id @GeneratedValue private Long id; @ManyToMany private Set<ElementOfCollection2> collection2; }
@ManyToMany @JoinTable( name = "map_key_map_value", joinColumns = @JoinColumn(name = "map_holder_id", nullable = false), inverseJoinColumns = @JoinColumn(name = "map_value_id", nullable = false) ) @MapKeyJoinColumn(name = "map_key_id", nullable = false) public Map<MapKey, MapValue> getMap() { return map; }
@Entity(name = "TestEntity1") @Table(name = "TestEntity1", catalog = "hibernate_orm_test_collation", schema = "dbo") public static class TestEntity { @Id @Column(name = "`Id`") long id; String field1; @ManyToMany @JoinTable(catalog = "hibernate_orm_test_collation", schema = "dbo") Set<LowercaseTableNameEntity> entities; @OneToMany @JoinColumn private Set<UppercaseTableNameEntity> entitie2s; @ManyToOne private LowercaseTableNameEntity entity; }
@Entity(name = "Person") public static class Person { @Id @GeneratedValue private Long id; @ManyToMany(cascade = {CascadeType.ALL}) private List<Address> addresses = new ArrayList<>(); public Person() { } public List<Address> getAddresses() { return addresses; } }
@ManyToMany( targetEntity = org.hibernate.test.annotations.manytomany.Contractor.class, cascade = {CascadeType.PERSIST, CascadeType.MERGE} ) @JoinTable( name = "EMPLOYER_CONTRACTOR", joinColumns = {@JoinColumn(name = "EMPLOYER_ID")}, inverseJoinColumns = {@JoinColumn(name = "CONTRACTOR_ID")} ) @Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE) @OrderBy("name desc") public List getContractors() { return contractors; }
@Entity private static class Group { @Id Long id; @Column String name; @ManyToMany( mappedBy = "groups" ) Set<User> users = new HashSet<>(); Set<User> getUsers() { return Collections.unmodifiableSet( users ); } void resetUsers() { // this wouldn't trigger association management: users.clear(); users = new HashSet<>(); } }
@Entity(name = "Person") public static class Person { @Id @GeneratedValue private Long id; @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}) private List<Address> addresses = new ArrayList<>(); //Getters and setters are omitted for brevity //end::associations-many-to-many-unidirectional-example[] public Person() { } public List<Address> getAddresses() { return addresses; } //tag::associations-many-to-many-unidirectional-example[] }