我有以下的邀请
课程
public class Course{
int courseId;
int courseName;
@OneToMany(fetch=FetchType.Lazy,mappedBy="course")
Set <CourseProperty> courseProp;
... setters & getters
}
课程属性
public class CourseProperty{
int courseId;
int prop1;
int prop2;
int prop3;
@ManyToOne(fetch=FetchType.lazy)
@JoinColumn(name="courseId",referencedColumnName="courseId",insertable=false, updatable=false)
@JsonIgnore
Course course;
... setters & getters
}
现在这是双向连接。所以我必须将@JsonIgnore
放在Course
的{{1}}属性中,否则当我打印CourseProp
对象时,会导致无限循环。
但是现在我无法在其中打印带有课程对象的课程道具对象。如何更改我的实体。假设我想要查询类似
的内容course
我想从CourseProp存储库运行此查询(通过Spring Data JPA),这将导致CourseProp对象但是JsonIgnore的becoz,我不会在课程道具中获得课程对象。
答案 0 :(得分:1)
我认为使用add_menu_page('Sorteios', 'Sorteios', 'manage_options', 'wabot-menu-sorteio', 'wabot_menu_sorteio_handle', 'dashicons-awards', 100);
add_submenu_page(null, 'Adicionar Sorteio', 'Adicionar Sorteio', 'manage_options', 'wabot-submenu-adicionar-sorteio', 'wabot_submenu_adicionar_sorteio_handle');
之类的框架将您的<a href="<?=admin_url("admin.php?page=wabot-submenu-adicionar-sorteio")?>"><button class="btn btn-success btn-sm">Adicionar</button></a>
直接序列化为Entities
并不是一个好主意。由于这些框架尝试将传递的对象完全序列化为JSON
,并且由于Jackson
是JSON
代理,因此它将获取对象的所有关联。即使是您标记为Entities
的那些属性,也不需要它们。同样,如果对象中存在双向关系,则会陷入无限循环。
相反,我认为最好为Hibernate
创建LAZY
或Model
类,并用所需的属性实例化它们,然后将这些对象序列化为DTO