我是新来的春靴。我有一个mysql数据库,我使用一个查询来计算表中的行数。但它不工作,它仍然返回我的原始表数据。你能帮我查一下密码吗。
这是我的实体:
@Entity
@Table(name = "act_id_membership", schema = "activiti", catalog = "")
@IdClass(ActIdMembershipEntityPK.class)
public class ActIdMembershipEntity {
private String userId;
private String groupId;
@Id
@Column(name = "USER_ID_")
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
@Id
@Column(name = "GROUP_ID_")
public String getGroupId() {
return groupId;
}
public void setGroupId(String groupId) {
this.groupId = groupId;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ActIdMembershipEntity that = (ActIdMembershipEntity) o;
return Objects.equals(userId, that.userId) &&
Objects.equals(groupId, that.groupId);
}
@Override
public int hashCode() {
return Objects.hash(userId, groupId);
}
}
我的问题是:
@Repository
public interface MemershipRepository extends JpaRepository<ActIdMembershipEntity, String> {
@Query ("select new com.example.activiti_restful.dtos.UserMembership(i.userId, count(i)) from ActIdMembershipEntity i where i.userId ='kermit'")
UserMembership countMemberships(String userId);
}
更新代码:我的服务类:
@Service
public class MembershipService {
@Autowired
private MemershipRepository repository;
public long count() {
return repository.count();
}
我的资源类:
@RestController
public class MembershipResource {
@Autowired
private MembershipService membershipService;
@GetMapping("/membership")
public long list() {return membershipService.count();}
}
我的自定义json对象类:
public class UserMembership {
private String userId;
private long numberOfusers;
public UserMembership(String userId, long numberOfusers) {
this.userId = userId;
this.numberOfusers = numberOfusers;
}
}
mysql表:act\u id\u成员
2条答案
按热度按时间daupos2t1#
根据存储库文档使用
CrudRepository
提供一个名为count()的方法,该方法是JpaRepository
已实施。基于CRUDREPOSITION的文档说明:
长计数();返回实体数。
那你应该用
CrudRepository
方法。除了删除大写的membershiprepository外,按java代码约定,还必须按以下方式使用membershiprepository。并将其用于您的服务:
更新
根据您的要求:在控制器中:
使用中:
}
在存储库中:
w7t8yxp52#
首先,创建一个类来 Package 数据:
}
然后
*****:您的完整程序包名称
希望对你有帮助!