-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
spring data JPA 笔记 #13
Comments
实体类中建立一对多、一对一、多对多的关系在实际的运用中,发现直接在实体类中写父id的话,会使得程序和orm过度耦合(当然带来的是速度的优势)。要使得程序的架构更加明朗,还是得使用hibernate原来那一套。 //注意注解加到get方法上 一对一多对多也差不多的
@OneToMany(mappedBy = "parentDept") //这里写持有者对应的属性名
public Set<OrgMemberEntity> getChildMember() {
return childMember;
}
@ManyToOne()
@JoinColumn(name = "parent_id")
@NotFound(action= NotFoundAction.IGNORE)
@org.hibernate.annotations.ForeignKey(name="none") //据说不会生成外键,不过这是过时的方法
public OrgDeptEntity getParentDept() {
return parentDept;
} 在换成hibernate注解的时候,有一些小问题,记录在这里。
@ManyToOne
@JoinColumn(name="dept_id")
@NotFound(action= NotFoundAction.IGNORE)
@org.hibernate.annotations.ForeignKey(name="none")
public OrgDeptEntity getParentDept() {
return parentDept;
} 加入
@Modifying
@Query("update OrgDeptEntity d set d.deptName = :#{#dept.deptName}
where d.id= :#{#dept.id}")
public int setByDept(@Param("dept") OrgDeptEntity orgDeptEntity);
(应该还有其他解决方案的 万能的jpa啊~) insert or update 的解决方案读了好几天的文档,查了好几天的资料,都没有比较好的解决方案。仔细一想,就算是mybatis也要发两条sql的,那么jpa先findone,然后再save。这好像也是比较标准的解决方案了。 😂 主键生成策略要指明出现了一些奇怪的错误,在主键的get方法上加上了 关系映射保存的坑
|
JPA审计 (JPA Auditing)当数据写入数据库时,有些数据用程序去确定有些冗余,比如浏览次数、创建时间、修改时间。有些可以通过数据库触发器解决,而比如时间,当数据库所在的环境事件不标准时,会发生一些问题。 对标准JPA Entity对象的检查由于注解加在get方法上,实际检查的get后面的参数,即要求的是标准的getter/setter |
FAQ
增加配置 @DynamicInsert
@DynamicUpdate |
由于上次看文档没有看到复杂查询, 这次再仔细看一遍
书签
The text was updated successfully, but these errors were encountered: