Tag: jpa

如何使用doSecondPassexception解决jpa和hibernate一对一注释

您好我正在编写简单的代码,使用jpa和Hibernate 3.2版本将数据插入到两个表中。我的意图是将Employee详细信息保存在两个表中,即Employee包含employeeId,这是主键,手动分配指定值和Employee Address共享使用@onetoOne annotions的Employee表中的主键employeeId。我的类就像lool一样 @Entity @Table(name = “employee”, catalog = “test”, uniqueConstraints = {}) public class Employee implements java.io.Serializable { // Fields private Integer employeeid; private String name; private Employeeaddress employeeaddress; // Constructors /** default constructor */ public Employee() { } /** minimal constructor */ public Employee(Integer employeeid) { this.employeeid = employeeid; } /** full […]

如何使用Hibernate JPA线程安全进行数据库访问?

我想知道我需要做什么才能访问数据库线程安全。 这是我的Entity类: @Entity @Table(name = “students”) @NamedQuery(name = “Student.getAll”, query = “SELECT s FROM Student s”) public class Student { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; @Column(length = 32, name = “name”) private String name; // … constructor, getters and setters, toString … } 这是DbService类: public class DbService { public EntityManager em = Persistence […]

基于Hibernate Annotation的Query执行错误?

实际上在我的基于Hibernate Annotation的应用程序中有这些ValueObject类(Bean类)这些是.. public Class CourseVO{ @Column(name=”NAME”) private String name; } SKillsetVO类 public Class SkillsetVO{ @ManyToOne @JoinColumn(name=”COURSE_ID”, insertable=false, updatable=false) private CourseVO courseSID; @ManyToMany(cascade = {CascadeType.ALL}, fetch=FetchType.EAGER) @JoinTable(name=”SKILLSET_COURSE”,joinColumns={@JoinColumn(name=”SKILLSET_ID”,referencedColumnName=”S_ID”)},inverseJoinColumns={@JoinColumn(name=”S_ID”)}) private Set course;} TimetableVO类 public class TimetableVO{ @ManyToOne @JoinColumn(name=”SKILLSET_ID”, insertable=false, updatable=false) private SkillsetVO skillsetSID; } 注意上面的代码Primarikey名为S_ID包含另一个名为AbstractVO的类,所以我的所有类都扩展了这个AbstractVO类,所以在主键上没有问题…现在在我的业务逻辑中我编写了一个查询: select tt from TimetableVO tt join tt.skillsetSID.course c where c.name in (:courseNames) 然后我给予:courseName喜欢’java’然后它给出error […]

java.time YearMonth作为实体内的类型

你如何在一个实体中使用YearMonth? 我看过很多关于转换器的堆栈溢出答案? 这还需要,如果是这样的话怎么样? @Basic(optional = false) @NotNull @Column(name = “cc_exp_date”) private YearMonth ccExpDate; 我得到的例外情况如下。 我可以将其转换为set方法中的日期,并在实体的get方法中转换回YearMonth作为解决方法吗? MysqlDataTruncation: Data truncation: Incorrect date value: ‘\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x84\xBA\x1B”H\xB2\x0C\x00\x00xpw\x06\x0C\x00\x00\x07\xE2\x02x’ for column ‘cc_exp_date’ at row 1

没有连接表的多对多关联

我想在以下(简化)数据库中应用JPA: NODE AUTHORITY —– ———- idNode int idAuthorities int nameNode varchar(50) person varchar(255) idAuthorities int rank int PRIMARY KEY (idNode) PRIMARY KEY (idAuthorities, rank) FOREIGN KEY (idAuthorites) 因此,一个节点可以具有多个权限,并且多个节点可以引用一个权限。 我希望我的课程看起来像: @Entity @Table(name=”NODE”) public class Node { private Integer id; private String nameNode; private Set authorities; // … getter and setter normaly annoted for “id” and “nameNode” […]

Spring – 在JPA事务之后提交JMS事务

我有两个事务管理器: JpaTransactionManager ( myJpaTm )和myJmsTm ( myJmsTm )。 考虑以下代码: @Named public class TestA { @Inject TestB testB; @Transactional(transactionManager=”myJpaTm”) public void methoda() { // store stuff in db testB.methodb(); } } @Named public class TestB { @Transactional(transactionManager=”myJmsTm”) public void methodb() { // send few JMS messages } } 我们有外部JPA事务和内部JMS事务,两者都是分开的,因为我们没有使用分布式事务。 我想在提交JPA事务后立即提交JMS事务。 在这种情况下,当前的JMS事务需要连接到父JPA事务。 我不是在寻找分布式事务的替代,我只想在将数据提交到数据库之后发送JMS消息。 我知道我可以创建另一个可以调用methodb ,然后methodb调用methodb ,但我想通过连接两个事务来解决它。

容器管理的交易

只是澄清我对容器管理事务(CMT)如何在JPA中工作的理解 – CMT使应用程序能够明确地开始和提交事务吗? CMT只能应用于会话和消息驱动的bean而不是pojos? 我对上述问题的理由是 – 我想知道如何从java-se应用程序以及java-ee访问实体。 我需要两个独立的持久性单元吗?

Hibernate ManyToMany是否可以为非键列自连接? 获取mappingException

我有以下问题。 我有一个与其他用户实体有多对多关系的用户实体。 因此,我希望通过多种注释进行自我连接。 此关系基于整个系统中使用的现有表,因此我根本无法更改DB。 所以我们有2个表User(Id,ShortName)和UserLink(ParentId,ChildId)。 ID的注释分配给ShortName,但User和UserLink中的实际键是来自UserLink的ID和来自UserLink的ParentId和ChildId。 我试图从User实体处理以下方式: @Id @Column(name = “ShortName”) private String shortName; @Column(name = “Id”) private long id; @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JoinTable(name = “UserLink”, joinColumns = { @JoinColumn(name = “ParentId”, referencedColumnName = “Id”) }, inverseJoinColumns = { @JoinColumn(name = “ChildId”, referencedColumnName = “Id”) }) private Collection children; 由于User实体中的键位于ShortName字段上,因此我必须将“Id”指定为引用的列名称param。 如果我不这样做,它将ShortName作为键,不会获取任何数据。 当我尝试按照上面显示的方式执行此操作时,我得到以下exception: […]

java.lang.ClassCastException:[Ljava.lang.Object; 无法施展

为什么在我的程序中触发了java.lang.ClassCastException? java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为com.App.Equip] 该查询返回已回答的检查表列表(在CheckLists calsse中找到)但尚未通过Equip对象回答 – 这是代码: import org.json.simple.*; @SuppressWarnings(“unchecked”) public JSONObject ListCheckListsNonETRepondu( long idEqp, long idmiss){ Query query = manager.createNativeQuery(“SELECT” + ” checksl.id_check_lists as IdCheckLists,” + ” checksl.titre_check as NomCheckLists,” + ” checksl.recommendation as Recommendation, ” + ” resp.id_responsescheck as IdResponse, ” + ” resp.conformite as Conformite, ” + ” resp.date_response as DateResponse, ” […]

Hibernate / JPA + Derby – SELECT语句在GROUP BY,ORDER BY或选择列表中包含太多项

我使用Hibernate与Derby DB进行JPA DB映射。 对于复杂的对象结构,我得到“org.apache.derby.client.am.SqlException:SELECT语句在GROUP BY,ORDER BY或选择列表中有太多项”: org.apache.derby.client.am.SqlException: SELECT statement has too many items in GROUP BY, ORDER BY or select list. org.apache.derby.client.am.Statement.completeSqlca(Unknown Source) org.apache.derby.client.net.NetStatementReply.parsePrepareError(Unknown Source) org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(Unknown Source) org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(Unknown Source) org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(Unknown Source) org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(Unknown Source) org.apache.derby.client.am.Statement.readPrepareDescribeOutput(Unknown Source) org.apache.derby.client.am.PreparedStatement.readPrepareDescribeInputOutput(Unknown Source) org.apache.derby.client.am.PreparedStatement.flowPrepareDescribeInputOutput(Unknown Source) org.apache.derby.client.am.PreparedStatement.prepare(Unknown Source) org.apache.derby.client.am.Connection.prepareStatementX(Unknown Source) org.apache.derby.client.am.Connection.prepareStatement(Unknown Source) org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:505) org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:423) org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139) org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547) org.hibernate.loader.Loader.doQuery(Loader.java:673) org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) org.hibernate.loader.Loader.loadEntity(Loader.java:1860) org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48) org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42) org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3044) […]