好的,我有2个实体 - :
一名教师可以属于一个部门,一个部门可以有多名教师。
因此要求教师实体包含映射关系的mappedBy属性。
现在我面临的问题是,如果某个部门不存在,那么它就会被创建,如果不是,则查询将获取该部门,并在教师对象中使用该部门。
现在的问题是,如果部门存在,我必须使用merge(),否则我必须使用persist(),因为部门将被新插入。有什么我可以做的,允许动态使用合并或持久吗?
代码如下 - :
Department.java
def login(request):
login_form = LoginForm(request or None)
if login_form.is_valid():
login(request, login_form.u) # directly pass the user by accessing from login_form object
return render(request, 'home.html', {})
Teacher.java
@Entity
@Table (name = "DEPARTMENTS")
@NamedQueries({
@NamedQuery(name = "Department.findById",
query = "SELECT d FROM "
+ "Department d "
+ "WHERE d.deptId = :id")
})
public class Department extends STSEntity{
private static final long serialVersionUID = 1L;
@Column (name = "DEPT_ID", length = 10,
unique = true, nullable = false)
private String deptId;
@OneToMany (targetEntity = Teacher.class,
mappedBy = "dept")
private Collection<Teacher> teachers = new ArrayList<>();
无论如何我可以同时使用两者?任何帮助将不胜感激
基本上,如果外键存在,则使用它或以其他方式创建它。