标签: persistence

保留适合枚举的数据

大多数项目都有某种数据,这些数据在发行版之间基本上是静态的,非常适合用作枚举,如状态,事务类型,错误代码等.例如,我只使用一个公共状态枚举:

public enum Status {
    ACTIVE(10, "Active");
    EXPIRED(11, "Expired");
    /* other statuses... */

    /* constructors, getters, etc. */
}
Run Code Online (Sandbox Code Playgroud)

我想知道其他人在这些数据的持久性方面做了些什么.我看到了一些选项,每个选项都有一些明显的优点和缺点:

  • 在状态表中保留可能的状态,并保留所有可能的状态域对象,以便在整个应用程序中使用
  • 只使用枚举,不要保留可用状态列表,在我和我的DBA之间创建数据一致性圣战
  • 保持状态并在代码中维护枚举,但不要将它们绑定在一起,从而创建重复的数据

我的偏好是第二种选择,虽然我的DBA声称我们的最终用户可能想要访问原始数据来生成报告,而不是持久化状态会导致数据模型不完整(反驳:这可以通过文档解决) .

大多数人在这里使用会议吗?人们对每个人的经历是什么,还有其他选择吗?

编辑:

在考虑了一段时间之后,我真正的持久性斗争来自于处理与数据库中的状态相关联的id值.安装应用程序时,这些值将作为默认数据插入.此时,它们具有可用作其他表中的外键的ID.我觉得我的代码需要知道这些ID,以便我可以轻松检索状态对象并将它们分配给其他对象.我该怎么办?我可以添加另一个字段,比如"代码",查看内容,或者只是按名称查找状态,这是icky.

java enums persistence types

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

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

在Web应用程序中引用jpa persistence.xml中的jar文件的正确途径是什么?

persistence.xml看起来像这样:

<persistence-unit name="testPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <non-jta-data-source>jdbc/test</non-jta-data-source>
    <jar-file>../../lib/app-services-1.0.jar</jar-file>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)

它是一个Web项目,因此部署单元是一个war文件.我试图引用的jar文件在WEB-INF/lib /文件夹中,persistence.xmlWEB-INF/classes/META-INF文件夹中.部署时,它只是告诉我

"警告:无法找到文件(忽略):file:.../../lib/app-services-1.0.jar".

我也试过,我能想到的,即每一个可能的路径../lib/app-services-1.0.jar,LIB /应用服务-1.0.jar.

这样做的正确途径是什么?

persistence hibernate jpa war java-ee-6

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

*具有持久性存储的大型*python字典,可快速查找

我有4亿行独特的键值信息,我希望能够在脚本中快速查找.我想知道这样做的方式是什么.我确实考虑了以下但不确定是否有一种磁盘映射字典的方法,并且除了在字典创建期间没有使用大量内存.

  1. 腌制字典对象:不确定这是否是我的问题的最佳解决方案
  2. NoSQL类型dbases:理想情况下需要对第三方内容具有最小依赖性的东西加上键值只是数字.如果你觉得这仍然是最好的选择,我也想听听.可能它会说服我.

如果有任何不清楚的地方,请告诉我.

谢谢!-Abhi

python persistence object-persistence

22
推荐指数
4
解决办法
8757
查看次数

JAVA:多线程环境中的EntityManager对象

如果我有多个线程,每个使用注入器来获取EntityManager对象,每个使用em对象来选择其他类对象的列表.准备用于for循环.

如果一个线程首先完成并调用clear(),那会影响其他线程吗?喜欢for循环会有异常吗?

close()怎么样?

如果答案是"它取决于",那么(类定义?方法调用?)和where(java code?annotation?xml?)应该看看它是如何依赖的?

我没有写源,我只是在没有文档的情况下使用其他人的库.

谢谢.

java persistence entitymanager

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

Firebase:setPersistenceEnabled和keepSynced有什么区别?

我以为我使用以下所有聊天对话数据的时间都可以随时离线使用.以某种方式不是,所有节点都从服务器加载.

FirebaseDatabase.getInstance().setPersistenceEnabled(true);
Run Code Online (Sandbox Code Playgroud)

然后,根据DOCS:

持久性行为:通过启用持久性,我们在线同步的任何数据都将持久保存到磁盘并可脱机使用,即使我们重新启动应用程序也是如此.这意味着我们的应用程序将使用存储在缓存中的本地数据在线工作.

如果数据已经脱机可用 setPersistenceEnabled(true);,我为什么需要keepSynced(true)

DatabaseReference r = FirebaseDatabase.getInstance().getReference("chat/roomid");
r.keepSynced(true);
Run Code Online (Sandbox Code Playgroud)

android persistence firebase firebase-realtime-database

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

如何将Scikit-Learn-Keras模型保存到持久性文件中(pickle/hd5/json/yaml)

我有以下代码,使用Keras Scikit-Learn Wrapper:

from keras.models import Sequential
from sklearn import datasets
from keras.layers import Dense
from sklearn.model_selection import train_test_split
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import StratifiedKFold
from sklearn.model_selection import cross_val_score
from sklearn import preprocessing
import pickle
import numpy as np
import json

def classifier(X, y):
    """
    Description of classifier
    """
    NOF_ROW, NOF_COL =  X.shape

    def create_model():
        # create model
        model = Sequential()
        model.add(Dense(12, input_dim=NOF_COL, init='uniform', activation='relu'))
        model.add(Dense(6, init='uniform', activation='relu'))
        model.add(Dense(1, init='uniform', activation='sigmoid'))
        # Compile model
        model.compile(loss='binary_crossentropy', optimizer='adam', …
Run Code Online (Sandbox Code Playgroud)

python persistence pickle scikit-learn keras

22
推荐指数
4
解决办法
8880
查看次数

为javax.persistence编写Maven依赖

有人可以帮我写依赖javax.persistence.我用google搜索但没有任何效果.

碰到了这个页面,它提供了有关如何编写依赖项的一些细节,但我无法编写它.有人可以帮我吗?

java eclipse persistence spring-mvc maven

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

JTA EntityManager无法使用getTransaction()

如何在我的非ejb应用程序中使用以下代码.代码有效.

@Override
public void saveItems(Collection<T> items) {
    synchronized (em) {
        EntityTransaction tx = em.getTransaction();
        try {
            tx.begin();
            for (T item : items) {
                saveItem_((Class<T>) null, item);
            }
            tx.commit();
        } finally {
            if (tx.isActive()) {
                tx.rollback();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在一个新的应用程序中,我正在使用EJB3 + JSF,并希望重用包含上述代码的库.我对新应用程序的持久性单元如下所示:

  <persistence-unit name="myApp" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>MySQLConnection</jta-data-source>
  </persistence-unit>
Run Code Online (Sandbox Code Playgroud)

我的新应用程序在遇到此行时抛出异常:

    EntityTransaction tx = em.getTransaction();
Run Code Online (Sandbox Code Playgroud)

例外是:

A JTA EntityManager cannot use getTransaction()
Run Code Online (Sandbox Code Playgroud)

这很清楚.问题是如何转换我的代码以使容器管理的事务.大概我的bean方法需要适当注释......问题是如何?

java persistence ejb-3.0

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

javax.persistence.Entitymanager:remove()方法

EntityManager的remove(Object entity)方法是否仅适用于从find()方法获得的那些对象?

我有以下代码片段:

public void deletePerson() {
    EntityManager em = getEntityManager();
    Person p = new Person("x", "y", 200);
    em.remove(p);
}
Run Code Online (Sandbox Code Playgroud)

但它并没有从数据库中删除特定条目.

当我尝试以下内容时:

public void deletePerson() {
    EntityManager em = getEntityManager();
    Person p = em.find(Person.class, 200);
    em.remove(p);
}
Run Code Online (Sandbox Code Playgroud)

它工作正常.

java persistence jpa

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