当它们出现在a的场/吸气器上时@Entity
,它们之间有什么区别?(我通过Hibernate坚持实体).
每个人都属于哪个框架和/或规范?
@NotNull
位于javax.validation.constraints
.在javax.validation.constraints.NotNull
javadoc中它说
带注释的元素不能为null
但是它没有提到元素在数据库中的表示,那么为什么我nullable=false
要将约束添加到列中呢?
我对JPA 2.0 orphanRemoval
属性有点困惑.
当我使用JPA提供程序的数据库生成工具创建底层数据库DDL以获得ON DELETE CASCADE
特定关系时,我想我可以看到它是必需的.
但是,如果数据库存在并且它已经存在ON DELETE CASCADE
关系,那么这还不足以级联删除吗?什么是orphanRemoval
除了做?
干杯
我对Spring Data-JPA和JPA之间的区别感到有点困惑.我知道JPA它是使用流行的ORM技术将Java对象持久化到关系数据库的规范,即换句话说,JPA提供接口和其他ORM技术,实现称为JPA提供程序的接口,例如Hibernate.
现在究竟是什么Spring Data JPA.Spring Data JPA是否在JPA上增加了一些功能(接口),仍然只是指定它还是JPA提供者?
我看到Spring Data JPA围绕存储库工作(DAO层:如果我没有错).所以我的意思是使用'Spring Data JPA + Hibernate'或仅使用'Hibernate'指导它是如何不同的?
我在使用带有以下映射的JPA删除孤立节点时遇到问题
@OneToMany (cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "owner")
private List<Bikes> bikes;
Run Code Online (Sandbox Code Playgroud)
我遇到了挂在数据库周围的孤立角色的问题.
我可以使用注释org.hibernate.annotations.Cascade
Hibernate特定标记,但显然我不想将我的解决方案绑定到Hibernate实现.
编辑:似乎JPA 2.0将包括对此的支持.
我对JPA 2很新,它是CriteriaBuilder/CriteriaQuery API:
我想计算CriteriaQuery的结果而不实际检索它们.这是可能的,我没有找到任何这样的方法,唯一的方法是这样做:
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<MyEntity> cq = cb
.createQuery(MyEntityclass);
// initialize predicates here
return entityManager.createQuery(cq).getResultList().size();
Run Code Online (Sandbox Code Playgroud)
这不是正确的方法......
有解决方案吗?
我想知道是否可以使用注释attributes
使用JPA2在以下类中持久保存地图
public class Example {
long id;
// ....
Map<String, String> attributes = new HashMap<String, String>();
// ....
}
Run Code Online (Sandbox Code Playgroud)
由于我们已经有一个预先存在的生产数据库,所以理想情况下,值attributes
可以映射到以下现有表:
create table example_attributes {
example_id bigint,
name varchar(100),
value varchar(100));
Run Code Online (Sandbox Code Playgroud) 本着与CriteriaQuery相关的类型安全的精神,JPA 2.0还有一个API来支持实体的Metamodel表示.
是否有人知道这个API的全功能实现(生成Metamodel而不是手动创建元模型类)?如果有人也知道在Eclipse中设置它的步骤,那将是非常棒的(我假设它就像设置注释处理器一样简单,但你永远不知道).
编辑:偶然发现了Hibernate JPA 2 Metamodel Generator.但问题仍然存在,因为我找不到jar的任何下载链接.
编辑2:少顷已经过去了,因为我问过这个问题,但我想我会回来,并添加一个链接到SourceForge上的Hibernate JPA模型生成项目
假设我有如下的单向 @ManyToOne
关系:
@Entity
public class Parent implements Serializable {
@Id
@GeneratedValue
private long id;
}
@Entity
public class Child implements Serializable {
@Id
@GeneratedValue
private long id;
@ManyToOne
@JoinColumn
private Parent parent;
}
Run Code Online (Sandbox Code Playgroud)
如果我有一个父P和子C 1 ... C n引用回P,那么在JPA中有一个干净漂亮的方法可以在删除P时自动删除子C 1 ... C n(即entityManager.remove(P)
)?
我正在寻找的是类似于ON DELETE CASCADE
SQL 的功能.
我正在使用JPA 2.0/Hibernate验证来验证我的模型.我现在有一种情况,必须验证两个字段的组合:
public class MyModel {
public Integer getValue1() {
//...
}
public String getValue2() {
//...
}
}
Run Code Online (Sandbox Code Playgroud)
该模型是无效的,如果这两个getValue1()
和getValue2()
的null
和有效的,否则.
如何使用JPA 2.0/Hibernate执行此类验证?使用简单的@NotNull
注释,两个getter都必须为非null才能通过验证.
我一直试图找到一个JPA Criteria API教程但是没有取得多大成功.你知道任何初学者吗?我想在Java5/Maven应用程序中开始使用它来构建复杂的搜索查询.
jpa-2.0 ×10
java ×8
jpa ×7
hibernate ×4
orm ×3
annotations ×1
cascade ×1
ejb-3.0 ×1
many-to-one ×1
metamodel ×1
persistence ×1