对不同模式的访问(只读)表和hbm2ddl生成的create-script

时间:2014-07-15 10:45:21

标签: hibernate jpa-2.0 hibernate-mapping hbm2ddl

我的应用程序使用两个架构和两个持久性单元。

我需要在第一个模式/ PU上映射的一个业务对象可以从第二个模式/ PU中映射的表中读取(并且只读取)数据。

所以我创建了一个映射到“foreign”表的类,只有我需要的字段,insertable和updatable设置为false(所以它应该是只读的)

@Entity
@Table( name = "NETHZ_USER", schema = "IDMANLIGHT" )
@Inheritance( strategy = InheritanceType.JOINED )
public class CMNUser extends PersistentObject
{
    private static final long   serialVersionUID    = CmnSerialVersionUID.getSerialVersionUID();

    @Column( insertable = false, updatable = false )
    private String              firstName;

    @Column( insertable = false, updatable = false )
    private String              lastName;

    @Column( insertable = false, updatable = false )
    private String              nethzPrimaryUsername;

    // Empty constructor need by Hibernate/Envers
    public CMNUser()
    {
        super();
    }

    + getters and setters

并将其放在第一个PU下的persistence.xml中。

问题在于创建数据库我使用Hibernate工具(hbm2ddl),当它生成脚本以创建第一个PU的表时,它也会生成create table idmanlight.nethz_user。当它尝试执行脚本时,会出现错误:“没有架构idmanlight的权限”(这是合法的)。

关键是hbm2ddl不应该生成表的创建(已经由第二个PU发生)。

有没有办法避免这种情况?

我希望我能够很好地解释这个问题......

0 个答案:

没有答案