我正在创建一个ArrayDescriptor以便将 CLOB 数据传递给 Oracle 函数。我有一个类,我在其中注入了 ( @Inject) jdbcTemplate...这是一个调用 Oracle 的实现类。我正在创建ArrayDescriptor类似:
Connection conn = auditJdbcTemplate.getDataSource().getConnection();
ArrayDescriptor keyArryDesc = ArrayDescriptor.createDescriptor("VC_ARR", conn);
Run Code Online (Sandbox Code Playgroud)
我收到的错误是:
java.lang.ClassCastException: com.sun.proxy.$Proxy183 cannot be cast to oracle.jdbc.OracleConnection
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:105
Run Code Online (Sandbox Code Playgroud)
正如我所说,我在这个类中直接调用了该auditJdbcTemplate.update工作,所以我不确定为什么它不能从模板返回有效的连接对象。我在 StackOverflow 中看到了几个获得底层连接的答案,但我无法让它工作。
正在从 AngularJS 应用程序调用 Spring Boot 应用程序中的 REST 服务,但 Spring 控制器无法对数据源执行简单的查找查询。相反,会引发以下错误:
java.lang.IllegalAccessError: tried to access class demo.WebLead from class com.sun.proxy.$Proxy111
Run Code Online (Sandbox Code Playgroud)
需要对下面的代码进行哪些具体更改才能使 REST 服务能够执行查询而不会抛出此错误?
在 Spring 控制器中抛出错误的代码行是:
WebLead wld = myrepo.findByIdlead(idl);
Run Code Online (Sandbox Code Playgroud)
当前面的代码行被更改为显式转换返回的实体时,也会抛出相同的错误,如下所示:
WebLead wld = (WebLead)myrepo.findByIdlead(idl);
Run Code Online (Sandbox Code Playgroud)
Spring Boot 控制器和应用程序中的相关部分UiApplication.java是:
@SpringBootApplication
@Controller
@EnableJpaRepositories(basePackages = "demo", considerNestedRepositories = true)
public class UiApplication extends WebMvcConfigurerAdapter {
@Autowired
private WebLeadRepository myrepo;// {}
@RequestMapping(value = "/some-url", method = RequestMethod.POST)
public @ResponseBody ResultMessage submitPhone(HttpSession session, @RequestBody ResultPhone rphon) {
ResultMessage resmess = new ResultMessage("phonetest");
try{
Long …Run Code Online (Sandbox Code Playgroud) 我有一个spring-boot项目Spring-Data。我想做一个查询,如:
SELECT * FROM my_table WHERE column_1 = column_2
Run Code Online (Sandbox Code Playgroud)
我该如何使用SpringData JpaRepository? 我试图找到一种方法:
MyTable findByColumn1...Column2() 没有任何运气
在获取请求中使用多个参数调用请求时出现以下错误: http://localhost:8080/find/1/empid/146220
白标错误页面
此应用程序没有明确的 /error 映射,因此您将其视为后备。
Tue Aug 01 19:33:35 IST 2017 出现意外错误(类型 = 内部服务器错误,状态 = 500)。参数绑定的名称不能为 null 或为空!在 JDK < 8 上,您需要使用 @Param 来命名参数,在 JDK 8 或更高版本上,请务必使用 -parameters 进行编译。嵌套异常是 java.lang.IllegalArgumentException:参数绑定的名称不能为 null 或为空!在 JDK < 8 上,您需要使用 @Param 作为命名参数,在 JDK 8 或更高版本上,请务必使用 -parameters 进行编译。
演示.java
@Entity
public class Demo {
@Id
private Long id;
private String name;
private String value;
//getter -setter
}
Run Code Online (Sandbox Code Playgroud)
演示应用程序.java
@SpringBootApplication
@RestController
public class DemoApplication {
@Autowired
private DemoRepository repository;
@RequestMapping(method=RequestMethod.GET, value="/find/{id}/{name}/{value}")
public Demo find(@PathVariable Long …Run Code Online (Sandbox Code Playgroud) 我想我错过了一些核心概念,因为我遇到了几个问题,但让我们从这个问题开始:当 a Userwith aSubscription保留在数据库中并且我尝试使用它时findOne(id),我得到NullPointerException. 我试图在生成的代码内部进行深入调试,似乎由于某种原因调用hashCode()了Subscription对象,这也出于不清楚的原因只有一个id集合,而所有其他属性都是null,但是因为它们(可能)hashCode()通过调用自己的方法参与该方法hashCode(),我得到这个例外。
所以基本上我想要的是用户成为许多社区的一部分,在每个社区中他都可以创建对他们内容的订阅。当我第一次调用 时SubscriptionController,一切正常,它创建User,Subscription和Community,我可以在数据库中看到它们,一切都很好。但是当我打电话时UserRepository.findOne(),也就是CrudRepository在里面UserSerivce- 我得到了异常。
我一直在努力解决这个问题两周,但没有运气,所以我真的希望有人能花一些时间来帮助我解决这个问题。下面是类:
用户:
@Entity
@Data
@NoArgsConstructor
public class User {
@Column(nullable = false)
@Id
private Integer id;
@OneToMany(mappedBy = "user", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JsonIgnore
Set<Subscription> subscriptions;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(
joinColumns = {@JoinColumn(name …Run Code Online (Sandbox Code Playgroud) 我是 Spring JPA 的新手(或者说是在很长一段时间后研究它),我需要一些帮助来编写 JPA 存储库。我有一个实体类 Itinerary 和 User。两者之间是一对一的关系。
@Entity
@Table(name = "ITINERARY")
public class Itinerary implements Serializable {
@Id
@Column(name = "ID")
@GeneratedValue(generator = "Itinerary_IDGenerator", strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name = "Itinerary_IDGenerator", sequenceName = "Itinerary_IDGenerator", allocationSize = 1)
private long id;
@Basic(optional = false)
@Column(nullable = false)
@Temporal(TemporalType.DATE)
private Date itineraryDate;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "USER_ID")
User user;
}
@Entity
@Table(name = "USER")
public class User implements Serializable {
@Id
@Column(name = "ID")
@GeneratedValue(generator = "User_IDGenerator", strategy = GenerationType.SEQUENCE) …Run Code Online (Sandbox Code Playgroud) 我正在使用Spring Data2.0.6.RELEASE。
我正在为性能和演示目的进行分页。这里关于性能我说的是如果我们有很多记录最好通过页面显示它们
我有以下内容并且工作正常:
interface PersonaDataJpaCrudRepository extends PagingAndSortingRepository<Persona, String> {
}
Run Code Online (Sandbox Code Playgroud)
在@Controller与正常工作:
@GetMapping(produces=MediaType.TEXT_HTML_VALUE)
public String findAll(Pageable pageable, Model model){
Run Code Online (Sandbox Code Playgroud)
通过Thymeleaf我能够应用分页。因此,直到这里目标已经完成。
注:本Persona类都被注解JPA(@Entity,Id,等)
现在我关心以下问题:即使分页工作Spring Data的记录数量大约是多少,每条记录的内容呢?。
我的意思是:让我们假设Persona类包含20场(考虑为您的应用程序,你想要的任何实体),从而为基于视图中的html其中一个报告只使用4个领域(ID,名字,姓氏,日期),因此,我们有16个不必要的字段对于内存中的每个实体
我尝试了以下方法:
interface PersonaDataJpaCrudRepository extends PagingAndSortingRepository<Persona, String> {
@Query("SELECT p.id, id.nombre, id.apellido, id.fecha FROM Persona p")
@Override
Page<Persona> findAll(Pageable pageable);
}
Run Code Online (Sandbox Code Playgroud)
如果我在里面做一个简单的打印,@Controller它会失败关于以下内容:
java.lang.ClassCastException:
[Ljava.lang.Object; cannot be …Run Code Online (Sandbox Code Playgroud) 我在我的项目中使用kotlin和JPA,但懒惰委托的kotlin似乎不适用于hibernate:
@get:Transient
private val shop:Shop by lazy { shopService.shop(shopId!!) }
Run Code Online (Sandbox Code Playgroud)
我收到错误:
org.hibernate.MappingException: Could not determine type for: kotlin.Lazy, at table: order, for columns: [org.hibernate.mapping.Column(shop$delegate)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:456) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:423) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.mapping.Property.isValid(Property.java:226) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:597) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.mapping.RootClass.validate(RootClass.java:265) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:329) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:461) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:57) ~[spring-orm-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) ~[spring-orm-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:390) ~[spring-orm-5.0.6.RELEASE.jar:5.0.6.RELEASE]
... 20 common frames omitted
Run Code Online (Sandbox Code Playgroud)
我在这里失踪了吗?
Spring Data 2.0 JpaRepository:findById()和之间的区别existsById()
findById()和existsById()方法?我正在尝试优化我的MongoDB集合。这是示例:
@Document
class Article {
@Id
private String id;
@DBRef(lazy = true)
@CascadeSave
private List<Comment> comments;
private String title;
private String text;
// constructors, getters and setters are ommited
}
@Document
class Comment {
@Id
private String id;
private String text;
private String author;
// constructors, getters and setters are ommited
}
Run Code Online (Sandbox Code Playgroud)
看起来很简单。获取文章,然后获取本文的所有评论。但是,如果我已经有文章ID,并且只想获取文章的所有注释该怎么办?当然也很简单。每个评论都应引用其所属的文章(例如article_id)。
我的问题是如何自动执行?保存/更新等时如何在评论中插入article_id?还是我应该将字段添加到Comment类,然后首先保存文章,然后获取article_id,然后获取评论,添加article_id,保存评论并向文章评论集合添加评论?这对我来说毫无意义。
我正在使用带有Spring Boot 2.0.5的Java 10,其中包括spring-data-mongodb和反应驱动程序。我还实现了@CascadeSave批注,用于在保存文章时保存评论。
多谢您的回覆。
spring-data ×10
spring-boot ×6
java ×5
spring ×4
hibernate ×2
jpa ×2
jdbctemplate ×1
kotlin ×1
lombok ×1
mongodb ×1
ojdbc ×1
oracle ×1
spring-mvc ×1