相关疑难解决方法(0)

带有额外列的JPA 2.0多对多

我试图在JPA 2.0(JBoss 7.1.1)中创建一个ManyToMany关系,并在关系中添加一个额外的列(粗体,下面),例如:

Employer           EmployerDeliveryAgent             DeliveryAgent
(id,...)   (employer_id, deliveryAgent_id, **ref**)  (id,...)
Run Code Online (Sandbox Code Playgroud)

我不希望有重复的属性,所以我想应用http://giannigar.wordpress.com/2009/09/04/mapping-a-many-to-many-join-table中提供的第二个解决方案.-with-column-using-jpa /.但我不能让它工作,我得到几个错误,如:

  1. 嵌入式ID类不应包含关系映射(实际上规范是这样说的);
  2. 在属性'employerDeliveryAgent'中,"映射的"值'pk.deliveryAgent'无法解析为目标实体上的属性;
  3. 在属性'employerDeliveryAgent'中,"映射的"值'pk.employer'无法解析为目标实体上的属性;
  4. 持久类型的覆盖属性"pk.deliveryAgent"无法解析;
  5. 持久性类型的覆盖属性"pk.employer"无法解析;

该链接上的许多人说它工作正常,所以我想在我的环境中有些不同,可能是JPA或Hibernate版本.所以我的问题是:如何使用JPA 2.0(Jboss 7.1.1 /使用Hibernate作为JPA实现)实现这样的场景?并补充这个问题:我应该避免使用复合键,而是使用普通生成的id和唯一约束吗?

提前致谢.

Obs.:我没有在这里复制我的源代码,因为它本质上是上面链接中的一个副本,只是具有不同的类和属性名称,所以我想这没有必要.

orm hibernate java-ee jpa-2.0 jboss7.x

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

JPA + Hibernate:如何定义具有ON DELETE CASCADE的约束

我只是想知道是否有这样一种方法可以构建我的MySQL表格

ALTER TABLE `USERINFO`
  ADD CONSTRAINT `FK_USER_ID` FOREIGN KEY (`USERID`) REFERENCES `USERACCOUNT` (`USERID`) 
    ON DELETE CASCADE 
    ON UPDATE CASCADE;
Run Code Online (Sandbox Code Playgroud)

但是,当hibernate ++ jpa开始构建我的表时,我只在我的DDL中得到了这个<property name="hibernate.hbm2ddl.auto" value="create" />"

ALTER TABLE `USERINFO` ADD CONSTRAINT `FK_USER_ID` FOREIGN KEY (`USERID`) REFERENCES `USERACCOUNT` (`USERID`);
Run Code Online (Sandbox Code Playgroud)

在我的课程中,我有这些注释设置,

// UserAcc.java
@Entity
@Table(name = "USERACC")
public class UserAcc implements Serializable {

private static final long serialVersionUID = -5527566248002296042L;

@Id
@Column(name = "USERID")
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer userId;


@OneToOne(mappedBy = "userAcc")
private UserInfo userInfo;
....


public UserInfo getUserInfo() {
    return userInfo; …
Run Code Online (Sandbox Code Playgroud)

java mysql hibernate jpa cascade

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

标签 统计

hibernate ×2

cascade ×1

java ×1

java-ee ×1

jboss7.x ×1

jpa ×1

jpa-2.0 ×1

mysql ×1

orm ×1