Classe Projeto
@Entity
@Table(name = "project")
@NamedQueries({
@NamedQuery(name = "Project.findAll", query = "SELECT p FROM Project p"),
@NamedQuery(name = "Project.findByIdProject", query = "SELECT p FROM Project p WHERE p.idProject = :idProject"),
@NamedQuery(name = "Project.findByNameProject", query = "SELECT p FROM Project p WHERE p.nameProject = :nameProject"),
@NamedQuery(name = "Project.findByDescriptionProject", query = "SELECT p FROM Project p WHERE p.descriptionProject = :descriptionProject"),
@NamedQuery(name = "Project.findByRpf", query = "SELECT p FROM Project p WHERE p.rpf = :rpf")})
public class Project implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "idProject")
private Integer idProject;
@Size(max = 45)
@Column(name = "nameProject")
private String nameProject;
@Size(max = 10000)
@Column(name = "descriptionProject")
private String descriptionProject;
@Column(name = "rpf")
private Integer rpf;
@JoinTable(name = "projectvaluesoctopus", joinColumns = {
@JoinColumn(name = "idProject", referencedColumnName = "idProject")}, inverseJoinColumns = {
@JoinColumn(name = "idValueOctopus", referencedColumnName = "idValuesOctopus")})
@ManyToMany(fetch = FetchType.LAZY)
private List<ValuesOctopus> valuesOctopusList = new ArrayList<ValuesOctopus>();
@JoinColumn(name = "idOrganization", referencedColumnName = "idOrganization")
@ManyToOne(fetch = FetchType.LAZY)
private Organization idOrganization;
// gets e sets omitidos
classe ValuesOctopus
@Entity
@Table(name = "valuesoctopus")
@NamedQueries({
@NamedQuery(name = "ValuesOctopus.findAll", query = "SELECT v FROM ValuesOctopus v"),
@NamedQuery(name = "ValuesOctopus.findByIdValuesOctopus", query = "SELECT v FROM ValuesOctopus v WHERE v.idValuesOctopus = :idValuesOctopus"),
@NamedQuery(name = "ValuesOctopus.findByAlternative", query = "SELECT v FROM ValuesOctopus v WHERE v.alternative = :alternative"),
@NamedQuery(name = "ValuesOctopus.findByValueAlternative", query = "SELECT v FROM ValuesOctopus v WHERE v.valueAlternative = :valueAlternative")})
public class ValuesOctopus implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "idValuesOctopus")
private Integer idValuesOctopus;
@Size(max = 450)
@Column(name = "alternative")
private String alternative;
@Column(name = "valueAlternative")
private Integer valueAlternative;
@ManyToMany(mappedBy = "valuesOctopusList", fetch = FetchType.LAZY)
private List<Project> projectList = new ArrayList<Project>();
@JoinColumn(name = "idOctopus", referencedColumnName = "idOctopus")
@ManyToOne(fetch = FetchType.LAZY)
private Octopus idOctopus;
//gets e sets omitidos
A questão é que quando adiciono um novo projeto e seto neste projeto um valueoctopus já existente, ele cria um novo valueoctopus com os mesmos valores porem com um id incrementado.