相关疑难解决方法(0)

如何在JPA中复制Hibernate的saveOrUpdate?

在JPA中,有什么方法可以复制Hibernate的saveOrUpdate行为,

saveOrUpdate

public void saveOrUpdate(Object object)
                  throws HibernateException

    Either save(Object) or update(Object) the given instance, depending upon resolution of the unsaved-value checks (see the manual for discussion of unsaved-value checking).

    This operation cascades to associated instances if the association is mapped with cascade="save-update".

    Parameters:
        object - a transient or detached instance containing new or updated state 
    Throws:
        HibernateException
    See Also:
        save(Object), update(Object)
Run Code Online (Sandbox Code Playgroud)

它实质上检查数据库中是否已存在该对象,并根据需要更新该对象或保存该对象的新实例.

JPA无交易读取很好,但我真的很想从Hibernate中获取这个方法.经验丰富的JPA开发人员如何处理这个?

java persistence hibernate jpa

38
推荐指数
2
解决办法
5万
查看次数

如何持久化@ManyToMany关系 - 重复条目或分离实体

我想用ManyToMany关系来保持我的实体.但是在持久化过程中我遇到了一些问题.

我的实体:

@Entity
@Table(name = "USER")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "ID")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Long userId;

    @Column(name = "NAME", unique = true, nullable = false)
    String userName;

    @Column(name = "FORNAME")
    String userForname;

    @Column(name = "EMAIL")
    String userEmail;

    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JoinTable(name = "USER_USER_ROLES", joinColumns = @JoinColumn(name = "ID_USER"), inverseJoinColumns = @JoinColumn(name = "ID_ROLE"))
    List<UserRoles> userRoles = new ArrayList<UserRoles>();

    // getter et setter
}
Run Code Online (Sandbox Code Playgroud)

@Entity …
Run Code Online (Sandbox Code Playgroud)

java many-to-many jpa duplicates unique-constraint

15
推荐指数
2
解决办法
3万
查看次数

JPA多对多持续加入表

我有两张表与多对多的关系.当我持久化用户没有插入任何东西来连接表时,我映射了这两个实体.我正在调试直到持久化,我看到组列表不为空.

Ther是没有错误消息只是坚持用户.

用户< - >用户组< - >组

我使用的是netbeans 7.3,Glassfish 3.1.2.2,postgresql 9.1和eclipselink 2

另外,我试图显示下面的属性对我不起作用的sql脚本.

        <property name="eclipselink.logging.logger" value="ServerLogger"/>
        <property name="eclipselink.logging.level" value="FINE"/>
        <property name="eclipselink.logging.level.sql" value="FINE"/>
        <property name="eclipselink.logging.parameters" value="true"/>
Run Code Online (Sandbox Code Playgroud)

Abstact DAO:

public abstract class GenericDAO<E> implements Serializable{

@PersistenceContext
EntityManager entityManager;

public void persist(E object){
    entityManager.persist(object);
}

public void merge(E object){
    entityManager.merge(object);
}

public void delete(E object){
    object = entityManager.merge(object);
    entityManager.remove(object);
}
}
Run Code Online (Sandbox Code Playgroud)

用户实体:

   @Entity
@Table(name = "users")
@XmlRootElement
@NamedQueries(
{
    @NamedQuery(name = "Users.findAll", query = "SELECT u FROM Users u"),
    @NamedQuery(name = "Users.findByUserId", query …
Run Code Online (Sandbox Code Playgroud)

java sql jpa eclipselink

4
推荐指数
1
解决办法
3万
查看次数