我试图使用join语句中的常量值连接到同一个表中的不同实体.在SQL中,我会做这样的事情......
SELECT *
FROM owner o
JOIN types t on t.owner_id = o.id AND t.type = 'A'
-- ^^^^^^^^^^^^^^^^ THIS IS WHAT I AM TRYING TO REPLICATE
Run Code Online (Sandbox Code Playgroud)
在Java + JPA/Hibernate中,我试图做这样的事情......
@Entity
@Table(name = "OWNER")
public class Owner {
@Id
@Column(name="ID")
private Long id
@OneToOne(mappedBy = "owner", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumns({
@JoinColumn(name = "ID", referencedColumnName = "ID"),
@JoinColumn(constantValue = "A", referencedColumnName="type")})
// ^^^^^^^^^^^^^^^^^^^ I AM LOOKING FOR SOMETHING THAT DOES THIS.
// constantValue IS NOT A VALID ARGUMENT …Run Code Online (Sandbox Code Playgroud) 我想使用spring-boot的存储库功能连接到基于目录的Derby数据库.经过多次努力,我意识到我一直连接的derby DB只是一个内存数据库.有没有办法让我指定数据库应该存储在文件系统而不是内存中?在我的JVM被杀之后,我希望我的数据库能够被持久化(并且能够被访问).
我已尝试使用application.properties中的以下属性指定Derby连接URL以使用基于目录的数据库:
spring.datasource.url=jdbc:derby:directory;create=true
Run Code Online (Sandbox Code Playgroud)
我的属性确实被读取和使用,但数据库仍然没有在JVM starup和shutdown之间保留数据.看起来Derby DB目录结构是在我的"derby.system.home"系统属性指定的位置创建的,但是当我重新启动JVM时,它不包含旧JVM中存储的任何数据.
提前致谢!