@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorValue(value = "OFF")
@DiscriminatorColumn(name = "DTYPE", discriminatorType= DiscriminatorType.STRING, length = 3)
@Indexed(interceptor=OfferIndexingInterceptor.class)
@ClassBridge(impl=OfferClassBridge.class,index=org.hibernate.search.annotations.Index.YES,analyze=Analyze.NO,store=Store.NO)
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE,region=CacheRegion.OFFER)
public class Offer{
@ManyToOne(optional = false, fetch = FetchType.LAZY)
@JoinColumn(name = "FK_UserID", nullable = false, updatable = true)
@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, region=CacheRegion.USER)
@IndexedEmbedded(includePaths={"id"})
@JsonView(Views.Detail.class)
public User getVendor() {
return vendor;
}
@Entity(name = "User2")
@Indexed
@NaturalIdCache
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE,region=CacheRegion.USER)
public class User{
@ManyToMany(cascade=CascadeType.MERGE,fetch = FetchType.LAZY)
@JoinTable(name = "User_UserRoles", joinColumns = @JoinColumn(nullable = false), inverseJoinColumns = @JoinColumn(nullable = false))
@Fetch(FetchMode.SELECT)
@BatchSize(size=10)
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE,region=CacheRegion.USER)
@IndexedEmbedded(prefix="role.")
@JsonIgnore
public Set<UserRole> getRoles() {
return roles;
}