大多数项目都有某种数据,这些数据在发行版之间基本上是静态的,非常适合用作枚举,如状态,事务类型,错误代码等.例如,我只使用一个公共状态枚举:
public enum Status {
ACTIVE(10, "Active");
EXPIRED(11, "Expired");
/* other statuses... */
/* constructors, getters, etc. */
}
Run Code Online (Sandbox Code Playgroud)
我想知道其他人在这些数据的持久性方面做了些什么.我看到了一些选项,每个选项都有一些明显的优点和缺点:
我的偏好是第二种选择,虽然我的DBA声称我们的最终用户可能想要访问原始数据来生成报告,而不是持久化状态会导致数据模型不完整(反驳:这可以通过文档解决) .
大多数人在这里使用会议吗?人们对每个人的经历是什么,还有其他选择吗?
编辑:
在考虑了一段时间之后,我真正的持久性斗争来自于处理与数据库中的状态相关联的id值.安装应用程序时,这些值将作为默认数据插入.此时,它们具有可用作其他表中的外键的ID.我觉得我的代码需要知道这些ID,以便我可以轻松检索状态对象并将它们分配给其他对象.我该怎么办?我可以添加另一个字段,比如"代码",查看内容,或者只是按名称查找状态,这是icky.
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.xml在WEB-INF/classes/META-INF文件夹中.部署时,它只是告诉我
"警告:无法找到文件(忽略):file:.../../lib/app-services-1.0.jar".
我也试过,我能想到的,即每一个可能的路径../lib/app-services-1.0.jar,LIB /应用服务-1.0.jar.
这样做的正确途径是什么?
我有4亿行独特的键值信息,我希望能够在脚本中快速查找.我想知道这样做的方式是什么.我确实考虑了以下但不确定是否有一种磁盘映射字典的方法,并且除了在字典创建期间没有使用大量内存.
如果有任何不清楚的地方,请告诉我.
谢谢!-Abhi
如果我有多个线程,每个使用注入器来获取EntityManager对象,每个使用em对象来选择其他类对象的列表.准备用于for循环.
如果一个线程首先完成并调用clear(),那会影响其他线程吗?喜欢for循环会有异常吗?
close()怎么样?
如果答案是"它取决于",那么(类定义?方法调用?)和where(java code?annotation?xml?)应该看看它是如何依赖的?
我没有写源,我只是在没有文档的情况下使用其他人的库.
谢谢.
我以为我使用以下所有聊天对话数据的时间都可以随时离线使用.以某种方式不是,所有节点都从服务器加载.
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) 我有以下代码,使用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) 有人可以帮我写依赖javax.persistence.我用google搜索但没有任何效果.
我碰到了这个页面,它提供了有关如何编写依赖项的一些细节,但我无法编写它.有人可以帮我吗?
如何在我的非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方法需要适当注释......问题是如何?
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)
它工作正常.