如何为不同的方法选择特定的列?

时间:2019-05-16 05:08:45

标签: java spring hibernate

我想从实体类中选择特定的列,而忽略方法中的其他列。为此,我不能使用@JsonIgnore,因为在另一种方法中,我想调用该实体类中所有可用的列。

@Entity
@Table(name="student")
public class StudentDO {
    @Id
    @Column(name="studentId")
    private int studentId;

    @Column(name="studentName")
    private String studentName;

        @JsonIgnore
    @Column(name="studentPlace")
    private String studentPlace;

    @Column(name="studentstd")
    private String studentstd;

现在我想要一个方法,该方法可以忽略@JsonIgnore列,而另一种方法是在调用时提供所有四个列,包括带有@JsonIgnore注释的列。

能否请您帮我解决问题

2 个答案:

答案 0 :(得分:0)

您不能执行此操作,除非您使用特定的hql或spring数据存储库,如:

findStudentNameAndStudentstdBysStudentId(int studentId)

答案 1 :(得分:0)

这可以通过返回ResultSet的自定义实体管理器查询来实现。

从SpringBoot上下文中获取EntityManager

@PersistenceContext
private EntityManager entityManager;

Query query = entityManager.createQuery("SELECT s.studentId, s.studentName FROM student s");
List<StudentDO[]> studentRows = query.getResultList();

对于每个StudentDO,属性的顺序与SELECT参数的顺序相对应。

对于不同的方法,可以编写不同的自定义查询。