有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java hibernate不使用hbm2ddl创建中间表。自动设置为“更新”

我的印象是当hbm2ddl。auto被设置为“update”,hibernate(3.6版)将扫描实体注释,更新数据库引用并创建新表,直到今天它一直工作正常, 有两个bean:角色和菜单,我为它们定义了一个单向的多个关联

@Id
@GenericGenerator(name="uuidGenerator", strategy="uuid")
@GeneratedValue(generator="uuidGenerator")
private String roleId;
@Column
private String roleName;
@ManyToMany(cascade=CascadeType.REMOVE)
@JoinTable( name="roleMenu",
    joinColumns=
        @JoinColumn(name="roleId"),
    inverseJoinColumns=
        @JoinColumn(name="menuid")
        )
private Set<Menu> Menus;

我已经在数据库中有了表角色和表菜单,所以我希望hibernate为我创建中间表RoleMeu,但它只会尝试更新RoleMeu中的外键引用,这会导致错误,因为RoleMeu还不存在,但如果我设置hbm2ddl,它可以正常工作。自动创建,那么有人能解释为什么hibernate以前没有创建RoleMeu吗


共 (0) 个答案