我一直在使用Spring Boot的Spring Data.使用JavaConfig文档,我已经设置了一个Spring JPA配置,但是当我在我的存储库中调用save方法时,会抛出一个空指针.
我的存储库:
import org.springframework.data.jpa.repository.JpaRepository;
public interface HouseRepository extends JpaRepository<House, Long> {
}
Run Code Online (Sandbox Code Playgroud)
我的POJO:
AbstractHouse
@MappedSuperclass
@Table(name="houses")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public abstract class AbstractHouse implements Serializable {
@NotEmpty
private String houseName;
@NotEmpty
private String houseNumber;
Run Code Online (Sandbox Code Playgroud)
屋
@Entity
public class SmallHouse extends AbstractHouse {
@Id
@GeneratedValue
private Long id;
private Date created;
private Date updated;
Run Code Online (Sandbox Code Playgroud)
然后我得到了一个服务对象,它接受一个Autowired存储库并尝试使用通过JPA获得的方法进行保存:
@Service
public class HouseService {
@Autowired
protected HouseRepository houseRepository;
public void save(House house) {
houseRepository.save(house);
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序类包含:
@SpringBootApplication
@EnableScheduling
@EnableJpaRepositories
public class Application {
public …Run Code Online (Sandbox Code Playgroud) 我对 Spring Data 相当陌生,我想创建一个查询,允许我在两个实体之间进行内部联接。
我一直在使用这个堆栈溢出来尝试澄清某些方面:
它给出了构造查询的答案,如下所示:
@Query("select u.userName from User u inner join u.area ar where ar.idArea = :idArea")
Run Code Online (Sandbox Code Playgroud)
然而,在这个查询中,我看不到它在哪里设法定义“ar”,因为两个实体类实际上都没有在它们自己内部定义“ar”?对此的任何澄清将不胜感激!