import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
+import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
-import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
-import javax.validation.constraints.Digits;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.AllArgsConstructor;
*/
@Table(name = "fn_language")
+
+@NamedQuery(name = "FnLanguage.getByLanguageAlias",
+query = "FROM FnLanguage WHERE languageAlias =: alias")
+
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Setter
@Entity
@JsonInclude()
-@SequenceGenerator(name="seq", initialValue=1000, allocationSize=100000)
public class FnLanguage implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq")
- @Column(name = "language_id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
- @Digits(integer = 11, fraction = 0)
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ @Column(name = "language_id", length = 11, nullable = false)
private Long languageId;
@Column(name = "language_name", length = 100, nullable = false)
@Size(max = 100)
@OneToMany(
targetEntity = FnUser.class,
mappedBy = "languageId",
- cascade = CascadeType.ALL,
- fetch = FetchType.LAZY
+ cascade = CascadeType.MERGE,
+ fetch = FetchType.EAGER
)
- private Set<FnUser> fnUsers;
+ private Set<FnUser> fnUsers = new HashSet<>();
@Override
public String toString() {
+ '}';
return sb;
}
+
+ public FnLanguage(
+ @Size(max = 100) @NotNull(message = "languageName must not be null") @SafeHtml String languageName,
+ @Size(max = 100) @NotNull(message = "languageAlias must not be null") @SafeHtml String languageAlias) {
+ this.languageName = languageName;
+ this.languageAlias = languageAlias;
+ }
}