我有两个实体:文章和类别
@AllArgsConstructor
@Entity
@ToString
@Table(name = "articles")
public class Article {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "title", nullable = false, unique = true)
private String title;
@Embedded
private Audit audit = new Audit();
@ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE})
@JoinTable(name = "articles_categories", joinColumns = {@JoinColumn(name = "articles_id")}, inverseJoinColumns = {@JoinColumn(name = "categories_id")})
@JsonManagedReference
private List<Category> categories = new ArrayList<>();
现在是实体类别,然后是实体类别
@Getter
@Setter
@Accessors ( chain = true )
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table ( name = "category" )
public class Category {
@Id
@GeneratedValue ( strategy = GenerationType.IDENTITY )
@Column ( name = "id" )
private Long id;
@Column ( name = "name", nullable = false, unique = true )
private String name;
@ManyToMany ( fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST , CascadeType.MERGE }, mappedBy = "categories" )
@JsonBackReference
private Set<Article> categories = new HashSet<>();
}
现在实体嵌入
@Getter
@Setter
@Embeddable
@RequiredArgsConstructor
public class Audit {
@Column ( name = "created_on" )
private Date createdOn;
@Column ( name = "updated_on" )
private Date updatedOn;
@PrePersist
public void prePersist ( ) {
createdOn = new Date ( );
}
@PreUpdate
public void preUpdate ( ) {
updatedOn = new Date ( );
}
}
在我的文章库中,我有以下jpa。
@Repository
public interface ArticleRepository extends JpaRepository < Article, Long > {
Page<Article> findByCategoriesIn (List<Category> categories, Pageable pageable);
}
这是正确的工作,并返回一页的文章,但我想按创建日期使用 @Embeeded
注解。
我怎么能用这个?
1条答案
按热度按时间jk9hmnmh1#
试着用这样的方法:
另请参见文档的本节和本节。