Hibernate: получение результата с использованием определенного поля - PullRequest
0 голосов
/ 24 сентября 2018

Я много читал о том, как получить список результатов, ссылаясь на определенный столбец в таблице.

У меня есть эта таблица.

enter image description here

Я хочу получить список результатов с plan_code "TEST123"

Это мой код:

PlanRepository.java

public interface PlanCoverageRepository extends CrudRepository<PlanCoverage, Long> {

    List<PlanCoverage> findAllByPlan_code(String plan_code);
}

PlanCoverageService.java

public interface PlanCoverageService {
    public List<PlanCoverage> getAllPlanCoverageByPlanCode(String plan_code);
}

PlanCoverageServiceImpl.java

@Service
@Transactional
public class PlanCoverageServiceImpl implements PlanCoverageService {

    @Override
    public List<PlanCoverage> getAllPlanCoverageByPlanCode(String plan_code) {
        return (List<PlanCoverage>) planCoverageRepository.findAllByPlan_code(plan_code);
    }

}

PlanCoverageController.java

@Controller
@RequestMapping(value="/admin")
public class PlanCoverageController {

    @Autowired
    PlanCoverageService planCoverageService;

    @RequestMapping(value="/Test/{plan_code}", method=RequestMethod.GET)
    public ModelAndView test(@PathVariable String plan_code) {
        ModelAndView model = new ModelAndView();
        PlanCoverage planCoverage = (PlanCoverage) planCoverageService.getAllPlanCoverageByPlanCode(plan_code);
        model.addObject("planCoverageForm",planCoverage);
        model.setViewName("plan_coverage_form");
        return model;
    }   
}

PlanCoverage.java

@Entity
@Table(name="plan_coverage")
public class PlanCoverage {

    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    private long coverage_id;

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

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

    /..getters and setters

    @ManyToOne()
    @JoinColumn(name="plan_code", referencedColumnName = "plan_code",insertable=false, updatable=false)
    private Plan plan;

    public Plan getPlan() {
        return plan;
    }

    public void setPlan(Plan plan) {
        this.plan = plan;
    }


}

Пожалуйста, помогите мне.Я застрял с ними в течение нескольких дней, и ни один из уроков, кажется, не работает на меня.Большое спасибо !!

1 Ответ

0 голосов
/ 24 сентября 2018

Вы запутались в соглашении, которое весенняя загрузка использует для составления методов запросов.Случай полей в сущности должен соответствовать схеме нижнего верблюда, например:

@Column(name="plan_code")
private String planCode;

, а затем метод запроса в PlanCoverageRepository должен быть:

List<PlanCoverage> findAllByPlanCode(String planCode);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...