/******************************************************************************* * Copyright (c) 2009, 2015 Sun Microsystems, Inc. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: ******************************************************************************/ package org.eclipse.persistence.testing.models.jpa.beanvalidation; import javax.persistence.*; import javax.validation.constraints.Min; import javax.validation.constraints.Size; import javax.validation.constraints.Max; import javax.validation.Valid; import java.util.Collection; @Entity(name = "CMP3_BV_EMPLOYEE") //@EntityListeners({MyListner.class}) public class Employee { public static final int NAME_MAX_SIZSE = 5; @Id private int id; @Basic(fetch = FetchType.LAZY) @Max(2000) private long salary; @Size(max = NAME_MAX_SIZSE) private String name; private String surname; @Valid @ManyToMany(cascade = CascadeType.ALL) @JoinTable(name="CMP3_BV_EMPLOYEE_PROJECT") private Collection<Project> projects; @Valid @ManyToOne(fetch = FetchType.LAZY) private Project managedProject; @Valid @Embedded private Address adress; // =========================================================== // getters and setters for the state fields public Employee() {} public Employee(int id, String name, String surname, @Min(1337) long salary) { this.id = id; this.name = name; this.surname = surname; this.salary = salary; } public int getId() { return id; } public String getName() { return name; } public String setName(String name) { return this.name = name; } @Size(max = NAME_MAX_SIZSE) public String getSurname() { return surname; } public String setSurname(String surname) { return this.surname = surname; } public void setProjects(Collection<Project> projects) { this.projects = projects; } public void setAddress(Address address) { this.adress = address; } public void setManagedProject(Project project) { this.managedProject = project; } //@PrePersist void m1() { System.out.println("Prepersit m1() called for Employee" + this); } @Override public String toString() { return "Employee {Id:" + id + " name:" + name + "}"; } }