相关疑难解决方法(0)

从DB中删除cascade和orphan有什么区别?

有什么区别

@OneToMany(cascade=REMOVE, mappedBy="customer")
public List<Order> getOrders() { ... }
Run Code Online (Sandbox Code Playgroud)

@OneToMany(mappedBy="customer", orphanRemoval="true")
public List<Order> getOrders() { ... }
Run Code Online (Sandbox Code Playgroud)

这个例子来自Java EE Tutorial,但我仍然不了解细节.

java jpa cascading-deletes

88
推荐指数
5
解决办法
7万
查看次数

更新父级时,Hibernate @OneToMany会从列表中删除子级

我有以下实体:

球队

@Entity
@Table
public class Team {
[..]
private Set<UserTeamRole> userTeamRoles;

/**
 * @return the userTeamRoles
 */
@OneToMany(cascade = { CascadeType.ALL }, mappedBy = "team", fetch = FetchType.LAZY)
public Set<UserTeamRole> getUserTeamRoles() {
    return userTeamRoles;
}

/**
 * @param userTeamRoles
 *            the userTeamRoles to set
 */
public void setUserTeamRoles(Set<UserTeamRole> userTeamRoles) {
    this.userTeamRoles = userTeamRoles;
}
Run Code Online (Sandbox Code Playgroud)

}

USER_TEAM_ROLE

@Entity
@Table(name = "user_team_role")
public class UserTeamRole {

 @ManyToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY)
 @JoinColumn(name = "FK_TeamId")
 public Team getTeam() {
    return …
Run Code Online (Sandbox Code Playgroud)

database hibernate jpa associations one-to-many

32
推荐指数
1
解决办法
6万
查看次数

在playframework中级联删除 - 如何为实体建模

在使用时创建在线商店应用程序时play-1.2.4,我遇到了jpa的一些问题.我想使用CRUD modulein play 提供管理区域.在这里,管理员用户可以创建/编辑或删除应用程序中的实体(如Customers,Orders) ,Item等等).

A Customer可以创建Orders.Each Order将有一组CartItems .当Order删除时,CartItem必须删除相应的s .当a Customer被删除时,他的所有订单也必须被删除.我想我可以通过设置cascade属性来获得jpa注释.

我这样建模了

Customer.java

@Entity
public class Customer extends Model {
    @Email
    @Required
    public String email;
    ...
    @OneToMany(mappedBy="customer", cascade=CascadeType.ALL)
    public List<Order> orders;
    @OneToOne
    public PayMethod currentPayment;
    ...
}
Run Code Online (Sandbox Code Playgroud)

Order.java

@Entity
public class Order extends Model {  
    @OneToMany( cascade=CascadeType.ALL,orphanRemoval=true,fetch=FetchType.EAGER)
    public Set<CartItem> cartItems;

    @ManyToOne
    public Customer customer;
    @ManyToOne
    public PayMethod paymentMethod;
    ... …
Run Code Online (Sandbox Code Playgroud)

java jpa cascade playframework

5
推荐指数
1
解决办法
4794
查看次数

级联全部不删除

请检查此实体:

@Entity
@Table(name = "css_empresa")
public class Empresa extends EntidadContactable implements Serializable,
    Convert {
private static final long serialVersionUID = 1L;

@Id
@SequenceGenerator(name = "EMPRESA_ID_GENERATOR", sequenceName = ConstantesSecuencias.SEQ_EMPRESA, allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "EMPRESA_ID_GENERATOR")
@Column(name = "cod_empresa", unique = true, nullable = false)
private Long id;


@Column(name = "num_ruc", precision = 13)
private BigDecimal numRuc;

@Column(name = "num_rup", precision = 15)
private BigDecimal numRup;

@Column(name = "txt_direccion_web", length = 255)
private String txtDireccionWeb;

@Column(name = "txt_nombre", nullable …
Run Code Online (Sandbox Code Playgroud)

java jpa jpa-2.0

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

如何在删除该列表的项目后更新列表

我需要花一点时间解释一下,所以请和我在一起.我有NewsFeed一个与自己有OneToMany关系的表.

@Entity
public class NewsFeed(){
    ...
    @ManyToOne(optional=true, fetch=FetchType.LAZY)
    @JoinColumn(name="REPLYTO_ID")
    private NewsFeed replyTo;

    @OneToMany(mappedBy="replyTo", cascade=CascadeType.ALL)
    private List<NewsFeed> replies = new ArrayList<NewsFeed>();

    public void addReply(NewsFeed reply){        
       replies.add(reply);
       reply.setReplyTo(this);
    }

    public void removeReply(NewsFeed reply){
       replies.remove(reply);
    }
} 
Run Code Online (Sandbox Code Playgroud)

所以你可以这样想.每个Feed都有一个List也是类型的回复NewsFeed.现在,我很容易删除原始Feed并获取更新后的列表.删除后我需要做的就是这个.

feeds = scholarEJB.findAllFeed();  //This will query the db and return updated list
Run Code Online (Sandbox Code Playgroud)

但是在尝试删除replies并获取更新后的列表时遇到问题.所以这是我如何删除replies.在我的JSF托管bean里面

//Before invoke this method, I have the value of originalFeed, and deletedFeed set.
//These original feeds are display inside a p:dataTable X, …
Run Code Online (Sandbox Code Playgroud)

java jpa

1
推荐指数
1
解决办法
6817
查看次数