小编gnu*_*nuf的帖子

在多对多单向映射中保留枚举集

我正在使用带有注释的Hibernate 3.5.2-FINAL来指定我的持久性映射.我正在努力建立应用程序和一组平台之间的关系.每个应用程序都可用于一组平台.

从我所做的所有阅读和搜索中,我认为我需要将平台枚举类保持为实体,并使用连接表来表示多对多关系.我希望关系在对象级别是单向的,也就是说,我希望能够获得给定应用程序的平台列表,但我不需要找出给定平台的应用程序列表.

这是我的简化模型类:

@Entity
@Table(name = "TBL_PLATFORM")
public enum Platform {
    Windows,
    Mac,
    Linux,
    Other;

    @Id
    @GeneratedValue
    @Column(name = "ID")
    private Long id = null;

    @Column(name = "NAME")
    private String name;

    private DevicePlatform() {
        this.name = toString();
    }

    // Setters and getters for id and name...
}

@Entity
@Table(name = "TBL_APP")
public class Application extends AbstractEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    @Column(name = "NAME")
    protected String _name;

    @ManyToMany(cascade = javax.persistence.CascadeType.ALL)
    @Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE})
    @JoinTable(name = "TBL_APP_PLATFORM", …
Run Code Online (Sandbox Code Playgroud)

java persistence annotations hibernate jpa

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

如何在Google Analytics v4 SDK for Android中通过XML配置干运行和日志级别选项?

Google Analytics v4 SDK使用的XML配置文件的参数文档(如Google Play Services 4.3.23发行版中所述)表明ga_dryRun并且ga_logLevel是跟踪器文件中的有效属性.这是我的res/xml/default_tracker.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="ga_dryRun">true</bool>
    <string name="ga_logLevel">verbose</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

当我在新的跟踪器上设置此配置文件并运行我的应用程序时,我在日志中看到以下内容:

04-30 13:05:55.303  29266-29266/com.example.app W/GAV3? Thread[main,5,main]: bool configuration name not recognized:  ga_dryRun
04-30 13:05:55.303  29266-29266/com.example.app W/GAV3? Thread[main,5,main]: string configuration name not recognized:  ga_logLevel
Run Code Online (Sandbox Code Playgroud)

是否有要更新的属性名称?是否不再支持通过XML配置这些功能(它们在v3 SDK中工作)?

我知道我可以从Java设置干运行和日志级别选项,但是能够在XML文件中定义这些选项会很好,所以我可以为不同的构建变体使用不同的文件.

android google-analytics google-analytics-firebase

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

使用Hibernate在CollectionTable的列上创建索引

假设我有以下实体为订户建模并使用a CollectionTable来建模订阅列表,如下所示:

@Entity
@Table(name = "SUBSCRIBER")
public class Subscriber {
    @ElementCollection
    @CollectionTable(name = "PERSON_ORG_SUBSCRIPTIONS",
                     joinColumns = { @JoinColumn( name = "PERSON_ID", referencedColumnName = "PERSON_ID" ),
                                     @JoinColumn( name = "ORG_ID", referencedColumnName = "ORG_ID" ) } )
    @Column(name = "SUBSCRIPTION_NAME")
    protected Set<String> _subscriptionNames;
}
Run Code Online (Sandbox Code Playgroud)

所以这创建了一个包含列的表PERSON_ID,ORG_IDSUBSCRIPTION_NAME.

我正在尝试在SUBSCRIPTION_NAME列上创建数据库索引.但是如果我把以下注释放在_subscriptionNames:

@org.hibernate.annotations.Index( name="subscription_idx", columnNames={"SUBSCRIPTION_NAMES"} )
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:

org.hibernate.MappingException: Unable to find logical column name from physical name null in table SUBSCRIBER
Run Code Online (Sandbox Code Playgroud)

我也尝试org.hibernate.annotations.TableSubscriber实体上使用注释,但似乎没有办法让它引用该PERSON_ORG_SUBSCRIPTIONS …

java hibernate jpa data-modeling

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