我正在尝试通过遵循Hibernate EntityManager 文档中的信息来设置一个简单的jpa 2.0项目.我已经在这几个小时了,但无论我做什么,当我尝试创建一个EntityManagerFactory时,我总是得到这个异常:
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named manager1
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
at se.mycomp.UserTest.main(UserTest.java:9)
Run Code Online (Sandbox Code Playgroud)
我发现了很多关于这个例外的类似问题,但没有我能够解决的解决方案.我在这做错了什么?
目录结构
.
??? pom.xml
??? src
??? main
? ??? java
? ? ??? se
? ? ??? mycomp
? ? ??? UserTest.java
? ? ??? domain
? ? ??? User.java
? ??? resources
? ??? META-INF
? ? ??? persistence.xml
? ??? log4j.properties
??? test
??? java
Run Code Online (Sandbox Code Playgroud)
我的persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0"> …Run Code Online (Sandbox Code Playgroud) 我正在尝试检查我的闹钟是否有效.警报设置前,alarmIsSet方法将返回false,设置警报时为true.到目前为止一直很好,但是,在我取消报警后,alarmIsSet将继续返回true,直到我重新启动设备.我该如何解决?
public class Alarm extends Activity {
private Intent intent = new Intent("PROPOSE_A_TOAST");
private void alarm (boolean activate) {
AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, 0);
if(activate == true) {
int type = AlarmManager.ELAPSED_REALTIME_WAKEUP;
long interval = 3000;
long triggerTime = SystemClock.elapsedRealtime();
am.setRepeating(type, triggerTime, interval, pi);
} else {
am.cancel(pi);
}
}
private boolean alarmIsSet() {
return PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_NO_CREATE) != null;
}
}
Run Code Online (Sandbox Code Playgroud) 我使用Wicket快速入门成功创建了一个项目,并通过运行将其转换为Eclipse动态Web项目
mvn eclipse:清除eclipse:eclipse -Dwtpversion = 2.0
我没有任何问题地将项目导入Eclipse,但是每个JAR都收到了这个警告:
不会导出或发布类路径条目M2_REPO/**.jar.
可能会导致运行时ClassNotFoundExceptions.
我可以通过使用right click ? QuickFix每个警告并选择"将关联的原始类路径条目标记为发布/导出依赖项" 来解决此问题,但这需要花费大量时间,如果存在大量依赖项则无法实现.
必须有办法让Maven为我这样做; 它是什么?
编辑:我发现使用m2eclipse核心+ Maven集成WTP(来自m2eclipse额外)解决了我的问题.
我仍然对如何在没有m2eclipse的情况下实现这一目标感兴趣,只是出于好奇:p
这就是我想要做的.
班级家长
@OneToOne(mappedBy = "parent", cascade = CascadeType.ALL)
public Child getChild()
Run Code Online (Sandbox Code Playgroud)
班级孩子
@OneToOne(fetch = FetchType.LAZY)
@OnDelete(action = OnDeleteAction.CASCADE)
@JoinColumn(name="parent_id")
public Parent getParent()
Run Code Online (Sandbox Code Playgroud)
我有点1,3,4完全工作,第5点部分工作,仍然需要解决如何翻译更新部分indo DDL.
第2点是这里的一个大问题,我目前的解决方案是父母不会懒惰加载孩子.然而,孩子懒得加载父母,但是反转注释会使级联变得混乱(第3,4和5点).
我现在很困惑,希望我错过了一些明显的东西,所以任何帮助都会非常感激.
编辑: Adeel Ansari要求的代码
'fetch = FetchType.LAZY'已添加到类Parent,否则与上面相同.
IParentDAO parentDAO = DAOFactory.getFactory().getParentDAO();
parentDAO.beginTransaction();
//findByPrimaryKey uses 'org.hibernate.Session.get(Class clazz, Serializable id)'
parentDAO.findByPrimaryKey(1l);
parentDAO.commitTransaction();
Run Code Online (Sandbox Code Playgroud)
生成的hibernate查询,一个获取Parent,一个获取Child:
Hibernate: select parent0_.id as id0_0_ from parents parent0_ where parent0_.id=?
Hibernate: select child0_.id as id1_0_, child0_.parent_id as parent2_1_0_ from childs child0_ where …Run Code Online (Sandbox Code Playgroud) 我正在尝试显示a Cursor中的信息ListView,每行包含a ImageView和a TextView.我有一个CustomCursorAdapter扩展CursorAdapter,在bindView我评估光标数据和基于设置视图图像和文本.
当我运行应用程序时,ListView显示正确的行数,但它们是空的.我知道我在覆盖bindView时遗漏了一些东西,但我不确定是什么.
任何帮助将不胜感激.
private class CustomCursorAdapter extends CursorAdapter {
public CustomCursorAdapter() {
super(Lmw.this, monitorsCursor);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater layoutInflater = getLayoutInflater();
return layoutInflater.inflate(R.layout.row, null);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
try {
int monitorNameIndex = cursor.getColumnIndexOrThrow(DbAdapter.MONITORS_COLUMN_MONITOR_NAME);
int resultTotalResponseTimeIndex = cursor.getColumnIndexOrThrow(DbAdapter.RESULTS_COLUMN_TOTAL_RESPONSE_TIME);
String monitorName = cursor.getString(monitorNameIndex);
int warningThreshold = cursor.getInt(resultTotalResponseTimeIndex);
String lbl = …Run Code Online (Sandbox Code Playgroud) 我正试图找出使用Hibernate在mysql数据库中保存/检索文件的'正确',故障保护方法.该解决方案必须处理非常大的文件,因此最小化内存占用将非常重要.
到目前为止我的解决方案:
包含java.sql.Blob字段的模型类,使用"@Lob"注释的getter.
public static void main(String[] args) {
DAOFactory factory = DAOFactory.getFactory();
IResultExtraDAO resultExtraDAO = factory.getResultExtraDAO();
factory.getResultExtraDAO().beginTransaction();
ResultExtra resultExtra = new ResultExtra();
LobHelper lh = HibernateUtil.getSession().getLobHelper();
try {
File file = new File("/3030.jpg");
FileInputStream fis = new FileInputStream(file);
Blob b = lh.createBlob(fis, fis.available());
resultExtra.setFile(b);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
resultExtraDAO.save(resultExtra);
factory.getResultExtraDAO().commitTransaction();
}
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?如果有manny simultanious上传和/或大文件,是否有可能用完memmory?还有其他解决方案会更好吗?
另外,我正在使用' 通用数据访问对象 '模式封装hibernate,所以我不喜欢像我这样直接访问HibernateUtil,但到目前为止我还没有想出一个很好的通用方法来访问它.欢迎提出建议.