我这里有一个问题仍然无法解决,问题是我有这个抽象类:
public abstract class AbstractBean<T> {
private Class<T> entityClass;
public AbstractBean(Class<T> entityClass) {
this.entityClass = entityClass;
}
...
}
Run Code Online (Sandbox Code Playgroud)
现在我有另一个继承这个抽象的类:
@Stateless
@LocalBean
public class BasicUserBean<T extends BasicUser> extends AbstractBean<T> {
private Class<T> user;
public BasicUserBean() {
super(user); // Error: cannot reference user before supertype contructor has been called.
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何让它工作?,我试图让BasicUserBean类继承,所以如果我有继承BasicUserBean的类PersonBean,那么我可以在Generic中设置实体Person,它也继承了实体BasicUser.它最终会成为:
@Stateless
@LocalBean
public class PersonBean extends BasicUserBean<Person> {
public PersonBean() {
super(Person.class);
}
...
}
Run Code Online (Sandbox Code Playgroud)
我只想继承BasicUserBean到所有后代的基本功能,所以我不必在所有后代中重复相同的代码.谢谢!.
我担心哪种类型的属性最适合在 Entity 类中使用。在我的问题中,我有字符串属性要坚持。
我想从以下方式及其优缺点中知道什么是最佳选择。
String[] attribute;
List<String> attribute;
Run Code Online (Sandbox Code Playgroud)
谢谢
我想知道在页面加载后如何在辅助bean中调用方法.考虑这个场景一旦用户登录成功,他的详细信息将显示在欢迎页面中.说我有login.xhtml和welcome.xhtml我有托管bean LoginController和DetailsController,两者都在SessionScope
DetailsController中有一个名为getDetails()的方法
因为我在getDetails()中读取了DB,所以不推荐从构造函数调用方法
当用户重定向到welcome.xhtml时,如何调用它,一旦重定向,他应该能够看到他的详细信息.
谢谢:)
我是一个休眠新手,我在尝试持久化对象时收到此错误 -
错误 - >未知实体:org.apache.struts.register.model.Event
在我hibernate.cfg.xml
,我将我的映射定义为,
<mapping class="org.apache.struts.register.model.Event"/>
我的活动课 -
package org.apache.struts.register.model;
import org.hibernate.annotations.Entity;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.Table;
@Entity
@Table (name="event")
public class Event {
@Id
@GeneratedValue ( strategy = GenerationType.AUTO)
private int eventId;
private String eventName;
private String eventDescription;
public String getEventName() {
return eventName;
}
public void setEventName(String eventName) {
this.eventName = eventName;
}
public String getEventDescription() {
return eventDescription;
}
public void setEventDescription(String eventDescription) {
this.eventDescription = eventDescription;
}
public String …
Run Code Online (Sandbox Code Playgroud) 考虑这个例子:( User
是一个有两个字段的类:生成的id和用户名)
User user = new User();
user.setUserName("username");
SessionFactory sessionfactory = new Configuration().configure().buildSessionFactory();
Session session = sessionfactory.openSession();
session.beginTransaction();
session.save(user);
user = null; // Does this deletes the object?
session.getTransaction().commit();
session.close();
Run Code Online (Sandbox Code Playgroud)
因为user
是持久对象,为什么设置它null
不会从DB中删除对象?
我需要知道使用PostgreSQL而不是Derby是否可以自动创建表.
故事:我成功地使用Hibernate和Derby建立了一个NetBeans Java项目.我已经从我的实体类创建了JPA控制器类.为了测试项目,我为这些控制器类创建了JUnit测试类.
首次运行这些测试类时,将在Derby中自动创建表.执行测试后,我可以在数据库浏览器中看到这些表.
在persistence.xml中有一行这样的行
<property name="hibernate.connection.url" value="jdbc:derby://localhost:1527/MySampleDb;create=true"/>
Run Code Online (Sandbox Code Playgroud)
设置连接并在需要时指示要创建的表(请注意行末尾的"; create = true").
使用PostgreSQL而不是Derby时.这不再起作用了.添加"; create = true"会破坏代码.这种自动表创建是否可以与PostgreSQL一起使用?我应该使用除Hibernate之外的其他持久性库吗?
我怀疑与以下示例有关:
package org.andrea.myexample.HibernateOnSpring.dao;
import java.util.List;
import org.andrea.myexample.HibernateOnSpring.entity.Person;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.springframework.transaction.annotation.Transactional;
public class PersonDAOImpl implements PersonDAO {
// Factory per la creazione delle sessioni di Hibernate:
private static SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
// CREATE CRUD Operation:
@Transactional(readOnly = false)
public Integer addPerson(Person p) {
System.out.println("Inside addPerson()");
Session session = sessionFactory.openSession();
Transaction tx = null;
Integer personID = null;
try …
Run Code Online (Sandbox Code Playgroud) 我有一个返回一些值的 DAO,如何检查方法是否抛出特定异常?
java ×7
hibernate ×6
generics ×1
inheritance ×1
java-ee ×1
jsf-2 ×1
persistence ×1
postgresql ×1
spring ×1
spring-mvc ×1
testng ×1