@Entity
@Table(name="PROPERTY_VALUES")
public class PropertyValuesData extends AbstractData {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="VAL_ID")
private Long id;
@OneToOne(fetch = FetchType.EAGER, cascade= {CascadeType.PERSIST} )
@JoinColumn(name = "VAL_PROP_ID")
private PropertyData property;
}
持久化对象:
public void createItem(TYPE item){
try{
em=EMFactory.createEntityManager();
em.getTransaction().begin();
em.persist(item);
em.getTransaction().commit();
}catch(Exception e){
logger.error("Error while createItem", e);
System.err.println(e.getMessage());
}finally {
if(em!=null)
em.close();
}
}
我有两种情况: 1)我创建了一个新的对象
PropertyValuesData
,其中包含现有属性(带有id)->然后我只想添加新的PropertyValuesData
2)我创建了一个新的对象PropertyValuesData
,其中包含新的属性->然后我还想插入新的PropertyData
。如果我添加
CascadeType.PERSIST
,那么我可以保存新属性,但对于现有属性,它会尝试再次插入。为避免再次插入相同的属性,我应该怎么做?