我在编写SQL查询时遇到问题。我想将数据插入到我的h2数据库中。 我的应用程序使用带有内存h2数据库的spring boot。
我的两个实体:
@Entity
public class Movie {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
@OneToMany(cascade = CascadeType.ALL)
private List<ScreeningTime> screeningTime;
private int screeningRoomId;
}
@Entity
public class ScreeningTime {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private long screeningTime;
}
我想使用SQL查询插入数据:
INSERT INTO PUBLIC.MOVIES (TITLE, SCREENING_TIME, SCREENING_ROOM_ID)
VALUES ('Film1', 1573399800000, 1);
我的查询是错误的,但我不知道如何解决。你能帮我吗?
答案 0 :(得分:0)
仅使用spring数据jpa
在项目中创建存储库。 帮助https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#reference
ScreeningTime time1=new ScreeningTime ();
time1.setScreeningTime("yourtime");
ScreeningTime time2=new ScreeningTime ();
time2.setScreeningTime("yourtime");
List<ScreeningTime> times=new ArrayList<>();
times.add(time1);
times.add(time2);
Movie m=new Movie();
m.setTitle("Film1");
m.setScreeningRoomId(1);
m.setScreeningTime(times);
repository.save(m);
答案 1 :(得分:0)
添加屏幕时间。您可以d看电影
@Repository
public interface ScreeningTime extends CrudRepository<ScreeningTime , Long> {
@Modifying
@Query(value = "insert into ScreeningTime (id,screeningTime) VALUES (:id,:screeningTime)", nativeQuery = true)
@Transactional
void saveScreen(@Param("id") String id, @Param("screeningTime") Long screeningTime);
}
答案 2 :(得分:0)
如果您使用的是Spring Boot,那么您也可以仅在服务类中自动连接EntityManager并使用persist方法保存更改。请确保标记您的服务类方法@Transactional。另外,请确保在pom.xml文件中添加spring-data-jpa。
@自动连线 EntityManager em;
//在此处添加代码以填充电影对象
em.persist(电影);
希望这会有所帮助!
答案 3 :(得分:0)
我想将movieId字段添加到ScreeningTime实体。我的示例或实体属性应该改变什么?我应该添加一些注释吗?或归因?