使用JPA在更新时应该遵循哪种方法?
方法1
obj o = new obj()
o.setName('val')
set other values
entitymanger.merge(ibj)
方法2
obj o = getObjFromDb(obj)
obj.setval(name)
//not am not updating other attributes
entitymanage.merge(obj)
我有两个实体角色和Grant,其映射如下:
public class Role extends BaseBean {
private static final long serialVersionUID = 1L;
private String name;
private Set<Grant> grants = new HashSet<Grant>();
// get set
}
public class Grant implements Serializable {
p
我很难弄清楚如何为以下实体正确设置JPA持久性(使用EclipseLink和事务类型=“RESOURCE_LOCAL”):
@Entity
public class User {
// snip various members
@ManyToMany
private List<Company> companies;
public void setCompanies(List<Company> companies) {
this.companies = companies;
}
}
@Entity
pub
我需要在JPA中使用的数据库中使用的一个列表的批量插入,其中我有大约35大小的对象列表,我想作为批量插入在JPA中有任何选项吗?
我尝试过大容量插入的dis编码
EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
try {
em.getTransaction().begin();
for (int i = 0; i <
我的数据库中有一个公司/雇员@OneToMany关系,定义为:
@Entity
public class Employee {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@ManyToOne @JoinColumn(name="companyid")
Company company;
....
}
@Entity
public class Company {
@Id @GeneratedValue(strategy=GenerationType.I
我有一个包含三个表(A、B和C)的sqlalchemy schema,它们通过一对多的外键关系( A->B)和(B->C)相关,并以SQLite作为后端。我创建了单独的数据库文件来存储数据,每个文件都使用完全相同的sqlalchemy模型,并运行相同的代码将数据放入其中。
我希望能够从所有这些单独的数据库中复制数据,并将它们放入一个新的数据库文件中,同时保留外键关系。我尝试使用以下代码将数据从一个文件复制到一个新文件:
import sqlalchemy
from sqlalchemy.ext import declarative
from sqlalchemy import Co
关于合并实体的JPA规范:
Case 1:
For all entities Y referenced by relationships from X having the cascade element value
cascade=MERGE or cascade=ALL, Y is merged recursively as Y'. For all such Y referenced
by X, X' is set to reference Y'. (Note that if X is managed then X is the same object as
X
我正在使用Hibernate,当我删除我的子对象时,我的父对象也被删除了,请检查下面的代码。
@Entity
public class User
{
@Id
@GeneratedValue
@Column(name = "FLD_USER_ID")
private Long userId;
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
private java.util.List<UserProfileEx> userProfileEx = new ArrayList<Use
嗨,我有一个关于merge()和persist()之间的区别的简短问题
我有一个NewsBuilder类:
这需要一个News实体,并检查它是否存在于数据库中,如果存在,则将实体的值设置为传递的数据并返回该实体。
如果它不存在,它将创建一个新的新闻实体,设置数据和
返回实体
namespace FantasyPro\DataBundle\Builder;
use FantasyPro\DataBundle\Entity\News;
use FantasyPro\DataBundle\Helpers\DateHelper;
class NewsBuilder
{
/*
在使用EclipseLink 2.5和需要不时合并独立实体的容器管理事务的应用程序中,每个实体包含一个带有@Version注释的字段。一些乐观锁定的实现是必要的,因为属性被映射到DTO并发送到客户端,客户机可能会根据它们对相应的DTO所做的更改请求更新这些实体。我面临的问题是,每当在实体上调用persist()或merge()时,在persist()或merge()返回的更新实体中添加到持久性上下文中的相应实体不包含更新版本字段。为了通过一个例子演示这一点,假设我们有以下实体:
@Entity
public class FooEntity implements Serializable {